martes, noviembre 28, 2006

Mi primer portatil

Pues si, ayer por fin llego mi portatil :D

Es un Dell Inspiron 1501

Procesador dual AMD Turion 64 de 1.8Mhz
2 GB de RAM
80 GB de disco duro
Una ATI RADEON xpress 1150 de 256 MB
Unidad lectora-quemadora de DVD's

Con gran esfuerzo, por fin consegui un portatil con ayuda de mis padres. Todo el dinero ahorrado durante la monitoria de arquitectura del computador se fué en este :)

Cosas buenas:

Costo beneficio.

Ahi no se puede decir nada... este computador salía mas o menos a 1000 dólares y con un descuento de 10%, se bajó el precio a 900 algo. Lo cual no pude ver en ninguna otra marca de computadores

Prestaciones

Pues haber... yo no se para que usa la gente los portatiles, pero ya he hecho varias cositas:

1. Guitar Rig funciona!! :D
Guitar Rig es un poderoso software que hace las veces de cabina-pedalera-estudio. Y lamentablemente dado que son efectos en tiempo real tiene unos requerimientos medios-altos.

2. Video
No soy un experto, pero es muy bacano ver los DVDs de zeppelin acostado en una hamaca :D

3. Juegos
Pues la única prueba que hice fue coger el videojuego mas actual que poseia (Hunting unlimited 2 lol) y funciona bastante bien.

Lindura
:P

No es un mac, pero para mi esta lo bastante bien :D

Ahora si cosas malas!!!
:(

BASURA >:(

N
o hay nada mas horrible que la publicidad y servicios no solicitados. A mi personalmente me parece un irrespeto inicializar windows y tener 380 MB de RAM ocupadas! (viniendo uno de un equipo con solo 256 se vuelve uno amarrado :P) y para colmo de males con puros programas trial (o en su defecto con licencia limitada como el caso del norton) únicamente para 2 meses.

Pues bueno, uno entiende que el usuario común es un completo imbecil, pero si algo me parece amoral es aprovecharse de los imbeciles... para que va querer un imbecil SQL Server!!!???

En fin, para todo esto la solución fácil...
format c

Instalación Linux

Para la instalación de Ubuntu tuve el problema de la detección del disco duro, pero si alguien necesita saber es fácil (explicaré lo mas sencillo posible :P)

1. Cambiar el orden de boot en la bios

F2 para entrar, y en la parte de boot se presiona 4 y luego f10 para guardar cambios

2. Forzar deteccion de disco duro

Cuando aparesca el menu de instalación presionamos f6 y ya con esto agregamos la opción pci=nomsi a la lista de opciones.

3. Realizar instalación común y corriente

No hay misterio.

4. Inicializar por primera vez

Estando en el menu del GRUB presionamos 'e' sobre la instalación de ubuntu y despues sobre la linea kernel la editamos y agregamos pci=nomsi, 'enter' y despues 'b' para hacer el boot

5. estando en linux debemos modificar /boot/grub/menu.lst (o algo asi) y agregar pci = nomsi a las lineas de kernell de ubuntu.

y listo! :D

viernes, noviembre 24, 2006

Psicoanálisis de la linea de comandos y el código abierto

"Si suspiras al recordar aquellos días cuando los hombres eran hombres y escribían sus propios drivers. Si te encuentras sin ningún proyecto interesante y te gustaría tener un verdadero sistema operativo que pudieras modificar a tu gusto, si te resulta frustrante tener solo Minix. Entonces este artículo es para ti".

Con esta "frasecita" inicio Linus Torvalds a reclutar, tiempo después, comenzó la leyenda.

Como buen noob de Linux, he estado leyendo uno que otro escrito subversivo en esta pagina. (súper interesante hay traducciones de unos escritos de Djkstra... wow!! Súper recomendados) Después de quedar algo anonadado con algunos detalles técnicos de los formatos .doc, programitas como deFrag y el famoso ScanDisk confieso que tal vez hasta termine siendo otro evangelizador.

Recuerdo que hace algún tiempo le preguntaba a algunos amigos medio fanáticos "ingenuamente" porque linux podía decirse que era mejor que Windows. Sin sorpresa me tope con las respuestas de siempre.

"Los de ingenieros de Microsoft son ineptos"
"Linux es libre, y por tanto mas gente está solucionando los bugs"
"No hay pantallas azules"

Dada la ferviente pasión de algunos de esos amigos por linux me sorprendió lo poco concluyentes de sus respuestas.

Después alguien me hablo del KISS (keep it simple stupid) como típica política de desarrollo en sistemas UNIX y esta me bastó como respuesta. Al tiempo leyendo un articulito de Eric Raymond (el que escribió el famoso HOW TO BE A HACKER) me enteré de otras practicas de desarrollo (liberar rápido, código atómico y un desarrollo evolutivo... entre otras) que sistemas "privativos" no poseen y que a la final han resultando best practices.

Porque los supuestos fanáticos no supieron decirme las ventajas? falta de conocimiento?... no creo, Hasta yo, con mi corta experiencia en sistemas operativos y en especial manejando Linux puedo decir algunas cosas mas de porque Linux es mejor. (Por solo dar un ejemplo... el hecho todo es un archivo).

Será la estabilidad?

Esa es de las cosas que más escucho decir, que la estabilidad esto, que la estabilidad lo otro. A mi la verdad no sé si es por falta de experiencia pero me he encontrado muchas veces con el linux bloqueado. Y en cuanto a rapidez, la única forma con la que pude hacer que linux corriera decentemente fue con xubuntu como distribución.

Lamentablemente, padezco de la enfermedad de encaminar mis razonamientos siempre hacia el libro de turno, y dado que el libro es (de nuevo) Te Second Self, creo que hay una explicación sicoanalítica prestada de este libro jejeje.

Para nadie resulta un misterio cual resulta ser el arquetipo del programador, o en su defecto, del usuario Linux... interés por la programación, videojuegos, RPGs y a veces literatura del mismo tipo (lo cual es descrito por la autora). Según Turkle estas aficiones tienen en común una necesidad de control, es decir, al programar uno esta a cargo de que se hace (así lo que uno escriba pase por 2 o mas compiladores y/o interpretes), el RPG esta supeditado a unas reglas fijas (nada mas frustrante que un master demasiado laxo) y el videojuego tiene también las reglas que decidió el equipo de programación al realizarlo. Así también, la línea de comandos (shell) de linux, resulta mucho más gratificante para aquel que desea control.

La línea de comandos permite al usuario darle la sensación que se comunica con el sistema operativo en su mismo lenguaje (así esto no sea verdad). Permite también que él elija todas las opciones con las que se ejecuta el programa, cuando se lanza pero específicamente cuando termina, cuando lo para. La labor de planeación de procesos del SO se oculta en cierta forma al utilizar el shell, el usuario puede decidir si parar el proceso y al hacerlo se siente bien consigo mismo. Siente poder.

Así también, el código libre da la idea de que la maquina es un ente totalmente comprensible. No hay cajas negras, y así nunca vaya a leer el kernel el usuario puede, en principio, modificarlo a su antojo y entenderlo. El entendimiento genera sensación de control y este control le da poder.

Bueno esto tal vez quede como cortado pero la verdad ya no se me ocurre que decir y concluir porque igual uno podría dar vueltas y vueltas:P

-------------------------------
Ya arregle el link, gracias federico

jueves, noviembre 16, 2006

Transparencia o Invisibilidad?

PRINT frase

todavia recuerdo... esa fué mi primera experiencia de programación en el colegio. En QuikBasic. Me puse super feliz cuando funcionó! :)

En esa época, mi conocimiento sobre lenguajes compilados, interpretados, mixtos, imperativos, funcionales o incluso, orientados a objetos era simplemente nulo. En esa época suponia que cada linea de código de quickbasic correspondia a una instrucción del computador, y por tanto, la eficiencia de un programa se media en el número de líneas que se ejecutaban.

Despues de muchos programas con miles de gotos, llega uno a la universidad y el primer lenguaje que mencionan, o con el que lo ponen a programar es... karell.

Decepción... pasar uno de programar en un "lenguaje de verdad" a mover un pinche robot. Pero bueno, esto solo tenía como objetivo introducir la programación orientada a objetos, porque igual luego nos enseñarian Java.

Pasó el semestre, y a este le siguió lenguajes de programación. (que era mas bien algo asi como... conoscan c y un poquito de c++ con algunos ejemplos de lenguajes "raros"). Uno se daba cuenta que realmente java era como una empleada doméstica (recogía la basura, y se encargaba de que todo "estuviera bien")

Despues, con otras materias, uno puede remitir casi directamente cada sentencia de c a un conjunto ensamblador pero en forma paralela al conocimiento de este mal llamado "bajonivel" se siguen haciendo las practicas en java... Porque? porque es fácil.

Ultimamente, despues de varias discuciones sobre lenguajes y herramientas, y en parte gracias a cierto articulo de Joel on Software donde describía como el manejo de apuntadores es un buen indicador de la capacidad de abstracción, se cayó en un punto álgido.

Es acaso la aptitud en el manejo de herramientas de alto nivel (llámese J2EE, eclipse SQL server y demás) elementos suficientes para juzgar la capacidad de un programador-informatico(1)?

Pienso que no.

En primer lugar, que es la aptitud para manejar herramientas? es acaso este un indicativo de imposibilidad de manejar otras? o por el contrario, es este un indicativo de capacidad de manejarlas? Siendo totalmente objetivos no.

Creo que el indicador realmente importante no es que herramienta utilice sino el saber lo que ocurre tras bambalinas, es decir, lo que llamare transparencia versus invisibilidad.

Que es transparencia e invisibilidad? ambas podria definirlas como una forma de ocultar los cómos interiores, sin embargo a diferencia de la transparencia la invisibilidad ignora la siquiera existencia de los cómos

El ejemplo ya está dado y es el del joven dieguito con su interpretador de quickbasic. Para él, utilizar PRINT resultaba invisible. la siquiera imaginación de la existencia de un como le resultaba extraña. Simplemente voila aparece un mensaje en pantalla. El comportamiento transparente, en cambio, es el del programa en java que pese a estar utilizando una lista se sabe por algo de las estructuras de datos vistas de c, que debe estar haciendo uso memoria dinámica, y que pese a que no se conoce como se implementan especificamente las operaciones se pueden intuir ciertas propiedades.

Siendo asi, creo que cualquier programa que permita hacer invisible su operación puede resultar nocivo para alguien que se digne llamarse cientifico en computación o ingeniero. creo que se compararía a un fisico que resuelva bien las ecuaciones sin entender los conceptos... es decir... a la hora de hablar de lenguajes de programación consideraría que haskell como lenguaje invisible puede ser tan nocivo como java, ruby o c++.

El caso importante es que existen herramientas que permiten ser aprendidas mas fácil en forma invisible que otras (particularmente me cuesta entender como alguien podría trabajar en prolog sin conocer el sustrato lógico :P) asi tambien existen herramientas que resulta imposible aprender en forma invisible (o a veces hasta transparente) como lo son el caso de lenguajes de bajo nivel, sin embargo tienen la posibilidad de hacer visible lo invisible :P

(1) Odio la palabra informático... no se me ocurrió otra :P

(*) creo que lleve demasiado lejos la metafora
(*) Proximamente... algo sobre el primer seminario nacional de ciencias cognitivas
(*) ortografía asquerosa... despues la reviso... LO JURO :P

goto(1/0) and :beyond :P