Saturday, April 28, 2007

Mas que un nombre: Ethereal cambia de nombre a Wireshark

El nombre de Ethereal, la utilidad de análisis de protocolos de red más famosa del mundo cambio su nombre: a Wireshark. ¿Por qué? Según este articulo Gerald Combs, fundador de proyecto Ethereal cambio de trabajo. Acepto un trabajo con CACE Technologies en Davis, CA, así mismo lleva con el proyecto y los desarrolladores principales. Pero esto no responde el porque.

Cuando me di cuenta de esto me pregunte que esta pasando aquí, solo porque se cambia de lugar, pierde el nombre (mas adelante aclarare porque es una perdida). Así que investigando llegue con la noticia antes mencionada. Allí se detalla que el empleador anterior (NIS) de Combs registro el nombre de Ethereal y el logo. Al partir de la empresa no se llego a un entendimiento para transferir los derechos a su fundador (Combs).

Esto es una gran perdida porque los nombres son lo que venden, lo que identifican a un producto, todo se tarta de la marca. Imagínense a NIKE, COCA COLA, JORDAN cambiaran de nombres.

Cuando un producto, persona etc. crece y es representado por un nombre, ese nombre se vuelve parte esencial de lo que representa. Entonces si lo cambiamos perdemos parte integral del producto o persona. Miren a (Muhammad) Ali, ese nombre es una institución y cuando se hace referencia a ese legendario boxeador solo necesitamos tres letras “Ali”. Y boom… tenemos un nombre que puede vender ropa, tennis, etc. Pero si mencionamos su verdadero nombre Cassius Clay, pierde el efecto que Ali genera.

Ethereal es utilidad de análisis de protocolos de red más famosa del mundo Ethereal, no como Wireshark y las eso le puede costar mucho. Porque el dueño de la marca, puede utilizar el nombre para comercializar otro producto bajo el nombre de Ethereal.

Toda esta en la marca y la identidad detrás de ella. He allí la importancia de siempre registrar los nombres de lo que creamos igual que las patentes. No importa si en ese momento parecen productos o inventos ridículos, es importante patentizar y registras nombres lo mas rápido posible, porque hay otros que están listos para aprovecharse de cualquier oportunidad.

Incluso si trabajamos para alguien y creamos un programa que brinda una gran solución, debemos patentizar y registrar el nombre. Además se debe tener cuidado con el contrato que se firma con el empleador y que no especifique que todo lo que inventamos pertenece la patente a la empresa, porque el salario es insignificante comparado a una marca y producto comercializado con éxito.

Tuesday, April 17, 2007

Nuevos Paradigmas del Desktop

El Desktop de nuestros sistema operativo es plano y muy sencillo de organizar, con toolbars y menus. Pero este video muestra a Beryl en Ubuntu, lo que rompe con el paradigma del desktop segun Microsoft. Incluso Beryl es mas atractivo que Vista o OS X.


Video: BumpTop 3D Desktop

Este otro video simula lo que seria nuestro desktop en la vida real: un relajo de uno cosa sobre las otras regadas por todos lados. Se puede mover, empujar, agrupar, enpilar, etc. los iconos como que fueran documentos de nuestro escritorio. Lo pueden ver en este video.. sinceramente me parece muy atractivo y comodo, debido que necesitamos un multitouch screen y eliminamos el uso del mouse :D.

Estos videos muestran una tendencia de las interfaces de usuario para las computadoras que rompen con el espacio 2D tradicional. Similar papermario de Wii, donde se pasa de 2D a 3D al cruzar una puerta.

Thursday, March 22, 2007

DELL SERVER a la LINUX con un twist de RAID







Tengo un SERVER DELL SC1430 con dos disco duros SATA SEAGATE de 10,000 rpm y con un controlador de disco SAS 5IR con un chip LSILogic SAS1068-IR (el procesador es XEON pero eso no importa para fines de este post).

Necesitaba instalar Linux en este servidor, y no quería gastar REDHAT Enterprise, porque no se puede instalar un sistema básico o base, sino que siempre tienen que incluir muchas cosas por default y desactivar todo lo extra que no se desea, además me parece que es demasiado caro para lo que ofrecen.

Me estaba enamorando de Debian como sistema operativo, por su estabilidad, seguridad y flexibilidad a la hora de instalar. Así que empecé con la instalación de Debian (sarge) y de primaras no me detecto los SATA, así que tenia que buscar una distribución de Linux donde el instalador detectara los disco SATA, pero con las mismas características de Debian. Esto claro si me quería ahorrar el trabajo de crear mi propio disco instalador. De la nada recordé Ubuntu que es una distribución basada en Debian que posiblemente esta más actualizada que Dedian. Además tienen dos versiones la Ubuntu Desktop Edition y Ubuntu Server Edition, lo que me permite de primeras instalar lo que yo deseo: un servidor con sistema base.

Una vez seleccionado el sistema se prosiguió a la instalación. Primero se probo con la 6.06 LTS (Long Term Support) el cual brinda soporte de actualizaciones hasta el 2011. Se llego al punto de la partición, se detectan los dos discos SATA SCSI pero al momento de crear el raid, Ubuntu no lo reconoce. Después de investigar y tratar de crear el RAID con un Live CD de Ubuntu Desktop basado en este tutorial y este y este otro, mas o menos tienen la idea. El asunto esta en que trate y trate de varias formas, incluso considere compilar otra vez el kernel con los drivers de la tarjeta de RAID. Después probé con la Alternate Edition de Ubuntu que permite hacer unas cositas extras y finalmente probé con la versión 6.10, mismo resultado, peor a aun no mostraba la opción de crear el RAID, como en la versión 6.06.

Por unos momentos tire la tolla con Ubuntu y yo solo quería que el RAID funcionara, incluso trate de utilizar el CD que viene con el servidor: Dell OpenManage Server Assistant, el cual crea el RAID(por medio de software), pero solo permite continuar con la instalación si se tiene sistema operativo de tipo Enterprise de RedHat, SUSE o Microsoft. También trate de reiniciar cuando me pedía el CD del sistema operativo y continuar con Ubuntu pero se “congelaba” de mostrar la pantalla de partición. También probe con Fedora Core 6, ese era peor no permitía crear los RAIDS desde la instalación.


Después de dos días de estar batallando con esta instalación, revise todos los links por lo que había pasado y encontré un email de una Mailling List donde una habían podido instalar Ubuntu en el mismo modelo de servidor que el que yo tenia. Así que le escribí a ella porque a mi no me funcionaba con el 6.10 y a ella si le funciono así que quería saber como hizo.

Antes de que ella me respondiera me di cuenta de algo, que cuando se listaban los dos discos duros presentes en el servidor, se podía presionar ctrl+c y entra a la utilidad de la tarjeta de RAID (o SAS Configuration Utility). Así que entre navegue pro las opciones hasta encontrar una parte donde se podia crear el RAID!!!!!! Allí me di cuenta de mi grave error, asumir que el RAID ya estaba creado, o que se creaba a la hora de instalar el sistema operativo. Eso puede ser verdadero para RAIDs baratos pero este era una tarjeta PCI de RAID “Profesional”. Aquí es donde se puede ver la diferencia entre una caja comprada como servidor en contraste con una PC con características de servidor, como podrán ver en este articulo que hace esa comparación entre hardware de PC y Server.

Entonces proseguí a crear el RAID utilizando el SAS Configuration Utility. Al crearlo y reiniciar el servidor se puede observar que en vez de listarse dos discos duros SATA SEAGATE, se lista un solo disco duro: DELL Virtual Disk. Aquí la tarjeta PCI se encarga de todo y no el sistema operativo, si falla un disco duro tenemos el otro. Lo que segué es instalar Ubuntu, donde como lo especifica la persona de este email, no funcionara con la versión 6.06 LTS. En efecto no funciono se queda congelado en la parte de partición de discos, se puede presionar ctrl+c pero reinicia el wizard de partición de discos. En cambio con el la versión 6.10, el instalador detecta el disco SCSI DELL VIRTUAL DISK y podemos continuar con la instalación (y mas importante finalizarla).

Después de cómo 7 discos quemados y dos días lidiando con el mismo problema, que se puede concluir? Pues además de aprender a leer manuales (RTFM), documentación, etc. sigan las siguientes recomendaciones cuando se trata de Linux y servidores DELL:

• Nunca utilizar el cd de DELL para instalación de servidores(Dell OpenManage Server Assistant)
• El momento del bootear el servidor, crear los arreglos con la utilidad de RAID y no utilizar nada de dmraid o mdadm para crear fakeraids.
• Una vez creado, se puede iniciar con la instalación de Linux.

Monday, March 19, 2007

Pirates of the Caribbean: At World's End

Hoy se podra ver el trailer del fin de la trilogia de Piratas del caribe. Me parece que esta trilogia puede llegar a ser de las mejores, espero que no defrauden con la ultima instancia. Quise experimetar poner un video en mi blog asi que aqui les va:


Tuesday, March 13, 2007

Bitácoras (o Logging)

Actualmente es raro encontrar una aplicación o sistema que una vez terminado no deba ser corregido. La razón de esto es por la forma como analizamos, diseñamos, desarrollamos y probamos nuestras aplicaciones. Se debe ser realista sobre algo: en la actualidad se desarrolla mal software y así se siguiera mientras sigamos programando antes de elaborar un profundo análisis y diseño.. Mientras tanto, podemos seguir parchando y desarrollando nuevas versiones con lo único novedoso son correcciones de un error.

Instalamos nuestra aplicación en producción y al mes nuestro usuario nos comenta de un error raro y que no podemos replicar. De vez en cuando aparece este error y puede ser tan crítico al grado que se procesan las transacciones de forma incorrecta. Pero no podes replicarlo y no tenemos tiempo para estar pendientes de ese usuario. En este caso y en los otros casos donde deseamos un registro de todo lo que pasa con nuestra aplicación, es donde el logging en la capa de aplicación es muy útil.

Tener la capacidad de generar una bitácora de todas las excepciones ocurridas, mensajes de error, eventos, etc. generados en nuestras aplicaciones nos hace la vida más fácil. Además, tenemos la habilidad de registrar eventos relaciones con seguridad y así poder determinar si nuestra ampliación esta siendo atacada. Recordemos que esto aplica a aplicaciones Web o Windows.

Para java y C# existe unas herramientas que le permite al programador almacenar los registros de bitácora que deseamos almacenar sin mucho esfuerzo. Estas herramientas son Log4j (para java) y Log4net (para C# .NET). Además de brindar las clases que facilitan el registro de los eventos, también os permite cambar la configuración a partir de un archivo sin necesidad de recompilar el programa. Pueden encontrar un artículo de Security Focus interesante sobre como utilizarlo como bitácora de seguridad. También pueden ver ejemplos en las páginas respectivas de cada proyecto (los cuales pertenecen a Apache). Existe este otro artículo donde pueden hacer su primer “Hola, mundo con log4net”. Pero al final pueden encontrar los que necesitan en las páginas de cada herramienta y también buscan en su buscador favorito.

Si están metidos muy de lleno con la plataforma .NET y desean utilizar otro framework puede utilizar el Logging Aplication Block de las Patterns and Practices de Microsoft. Estas páginas le brindan las mejores prácticas para el desarrollo de software de alta calidad. Además brindan algunos bloques que adicionan funcionalidad al framework .NET.

Independientemente de que framework o metodología de registro de bitácoras utilicemos, es importante que lo hagamos no solo en nuestras aplicaciones, sino en todos nuestros servidores, puntos de autenticación, base de datos, etc. Y porque molestarse tanto? Bueno la información es poder y entre mas información tenemos mejores decisiones podemos tener. Además, creo que es un poco penoso que nosotros no sepamos que esta pasando, cuando somos los creadores o implementadotes de los sistemas.

Tuesday, March 06, 2007

Experimentando con Debian

Febrero fue un mes demasiado corto y ocupado asi que este era el post de Febrero :P

Después de un par de años trabajando con RedHat y Fedora decide aventurarme a trabajar seriamente con otra distribución: Debian. Debían no es una distribución que se debe dar a los que inician con Linux, a diferencia de Mandriva y Fedora, este no trae todos esos bonitos wizards gráficos para instalar el sistema operativo.

La versión Actual de Debían cuando se escribió este post es la 3.1 (o Sarge). Que se dice que es más fácil de instalar que las anteriores. Una ventaja evidente de Debian sobre las otras distribuciones es la cantidad de paquetes de software que puede ser instaladas con apt-get (su rival en otras distros es yum). Existen mucho más paquetes para Debian que para las otras distros. Se recomienda utilizar estos instaladores porque asi se puede desinstalar e instalar programas con mas facilidad y mas limpio que hacerlo manual. Aunque a mi parecer, compilar los sources a veces es la mejor opción, cuando se quiere full control sobre la instalación y se desea saber que esta pasando de verdad.

Otra ventajas de Debian es su estabilidad, seguridad, y en si la filosofía detrás, porque todo es basado en políticas muy bien pensadas y detallistas. A tal grado que un paquete no tiene un manual es considerado un bug.

Yo no soy un experto en pero basado en experiencia e investigación encontré estas ventajas. Si necesitan ser convencidos de porque Linux y mas un porque utilizar Debian, vean este articulo, esta interesante los puntos de vistas y argumentos.

Lo que me encanta de debian es que nos permite instalar un sistema operativo base, inecesarios para que el Debian ejecute correctamente. Las dos veces que lo instalado este viene con el kernel 2.4, por lo tanto seria bueno utilizar apt-get para instalar el nuevo kernel. Con el siguente comando:

$ apt-get install kernel-image | grep 2.6 podrán ver todas las versiones disponibles del kernel (tomando en consideración también le procesador de nuestra computadora).

Si deseamos trabajar con nuestro sistema, podra ser que necesitemos instalar aplicativos que necesitamos compilar por ciertas configuraciones que deseamos. Por lo tanto se debe instalar el make, gcc y otras librerías.

Si recibimos los siguientes errores entonces se deben instalar con nuestro manejador de paquetes favorito (en este caso core que es apt-get :D). Esta es una muestra de los erroes que se puede recibir;

Make not found, do
apt-get install make

If you get the error: gcc not found, do
apt-get install gcc

If you get the error "C compiler cannot create executables."
apt-get install libc-dev

Por cierto, ni el traceroute esta instalado (para instalarlo utilizar: $apt-get install traceroute ).

Para empezar con Debian, creo solo se debe bajar la imagen básica llamada netinst, donde pueden ver de que se trata haciendo clic aquí. De allí todos los paquetes los pueden bajar de Internet utilizando el apt-get. El uso del apt-get es básico, pero si tiene problemas pueden acudir a este HOW-TO. El apt-get depende muchas veces de los repositorios que se indiquen. Pueden estar localizados en Internet o en un CD o DVD. Para mas detalle puede avocarse a este link y creo que es suficiente para experimentar…

Sunday, January 21, 2007

Quickstart Threads in C#

C# soporta la ejecución paralela de código por medio de multithreading. Un thread o (hilo) es otro camino de ejecución independiente al del proceso principal (o “main” thread) que lo manda a llamar, de esta forma permite la ejecución simultanea con otro hilos.

Un programa de C# empieza con un solo hilo creado automáticamente por el CLR y el sistema operativo. Este hilo se llama “main” thread (o hilo principal) y los otros hilos que son los “worker” threads. El programa se vuelve multhi-threaded (o multi-hilos) al crease threads adicionales.

El CLR asigna a cada thread su propio stack de memoria para mantener las variables locales separadas. Por lo tanto si se hace un método que se ejecuta dos veces en dos threads distintos, entonces existirán dos instancias de las variables en dos stacks. Pero si se desea compartir data entre hilos, se puede hacer si se tiene una referencia a la misma instancia de un objeto. También se puede compartir data entre hilos utilizando campos o variables estáticas (en C# se utiliza la palabra static para definir tales variables).

El problema de compartir data entre hilos es la seguridad entre threads. Sucede los siguiente: puede ser que el thread A empiece a trabajar en las variables o recursos compartidos, cuando thread B todavía esta trabajando en ellos, lo cual afecta el resultado de thread B de una forma no deseada. Similar a lo que pasa cuando dos o mas aplicaciones clientes accesan un registro en una base de datos, definido como concurrencia, solucionado con métodos de control de concurrencia. Para solucionar este problema con los threads se necesita obtener un exclusive lock, de tal forma que el recurso compartido solo puede ser utilizado por un thread a la vez.

Después de esta breve introducción, pueden conocer mas de los threads con ejemplos y todo en esta pagina que considero (ya que me ayudo) muy practica y suficiente para trabajar con threads en C#.

Pero si no desean leer todo el contenido de la página, y desean empezar a trabajar con los threads entonces sigan leyendo. Utilizo los threads en C# para dar una interfase grafica para el usuario que responda durante procesos largos. De esta forma el thread principal Main, podrá estar respondiendo a cualquier requisición del usuario, mientras los hilos trabajan en otras tareas y ventanas.

Para empezar se debe incluir

using System.Threading;

Después de esto creamos el método estático que tendrá todo lo que deseamos correr en el hilo.

private static void metodo()

{

...

}

Si se desea utilizar argumentos, solo se podrá incluir uno. Por lo tanto si se tienen varios argumentos, se pude pasar como argumento un objeto con varias propiedades o un arreglo si todos los argumentos son de un tipo.

private static void metodo(object arg)

{

...

}

Tenemos nuestro metodo ahora a crear el thread. Para crear un thread y ejecutarlo se hace de la siguiente forma:

Thread hilo = new Thread(new ThreadStart(metodo));

Si el metodo tiene un parametro entonces lo declaramos de la siguient eforma

Thread hilo = new Thread(new ParameterizedThreadStart(metodo));

Se declara el hilo con el método que se ejecutara por en el hilo. Para iniciar el thread solo llamamos a:

hilo.Start();

Si deseamos abortar el thread entonces utilizamos Abort(). Para poner a dormir al hilo utilizamos Sleep(n) donde n es el número de segundos que deseamos que el thread duerma.

Dot Net también nos brinda una clase ayudante, BackgroundWorker en el namespace System.ComponentModel para manejar un worker thread. Esta clase nos provee las siguientes bondades:

  • Una bandera “cancel” para mandar una señal al thread de que debe terminar sin utilizar el a veces problemático Abort.
  • Un protocolo estándar para reportar progreso, completación y cancelación. Muy útil para mostrarle a un usuario como va el trabajo.
  • Manejo de excepciones
  • La habilidad de actualizar los controles en las Windows Forms del progreso o finalización del thread. También útil para mejorar la interacción con el usuario.

Algo interesante es que el hecho que BackgroundWorker maneja un pool de threads, donde los recicla en vez de estar creando nuevos threads. Entonces si se desea utilizar esta clase hacemos lo siguiente:

Declaramos el objeto

static BackgroundWorker worker = new BackgroundWorker();

Despues le agregamos los eventos a utilzar. Me parece que los eventos mas utiliados son:

DoWork: donde se programa el trabajo qe efectuara el thread

ProgressChange: donde reportamos el progreso de trabajo a un control como ser una progressbar (barra de progreso).

RunWorkerCompleted: que se encarga de ejecutar lo que queramos cuando termina el thread de ejecutarse.

Estos dos últimos eventos son muy importantes para mejorar la interactividad con el usuario y para comunicarse con el main thread, debido que no es permitido que los hilos se comuniquen entre si, ósea “cross thread comunication” no es permitido.

Así adicionamos los métodos que se ejecutaran en los eventos:

bw.DoWork += new DoWorkEventHandler(bw_DoWork);

bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);

bgWorkerPrintBLs.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);

donde los metodos en los parentesis se definen de la siguiente forma:

private void bw_DoWork(object sender, DoWorkEventArgs e)

{

//trabajo del thread

}

void bw_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)

{

//intereaccion con el progress bar control

progressBar.Value = e.ProgressPercentage;

}

void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)

{

//cuando el thread termina puede ser un messagebox o mensaje

MessageBox.Show(“fin”);

}

Finalmente para inicar el este worker thread haemos los siguiente:

bw.RunWorkerAsync();

Conclusion:

Este es un quickstar para threads en C# lo cual es muy probable que se tenga que utilizar en aplicaciones para Windows que no dejen de responder visualmente cuando les toca ejectuar un proceso de varios segundos. Pero esta es solo la punta de iceberg y el ebook (y fuente teorica para este post) que lei para iniciar con los threads en C# es una buen inicio. Alli tambien encontraran sobre sincronizaciones de threds, seguridad, comunicación entre threads y otra informacion teorica y practica muy util.

Wednesday, January 10, 2007

iPhone de Apple Inc comparte touch screen y nombre

Bueno, no duro mucho sin crear controversia el nuevo producto de Apple Inc. (ya no es Apple Computer Inc). iPhone no es un nombre registrado por Apple, sino por Cisco y es parte de una linea de productos de su división Linksys. Por lo tanto Jobs anuncia el nuevo producto bajo nombre iPhone, entonces Cisco lanza su ataque legal contra Apple Inc.

Bueno ese es un pequeño problemita que no dejara de vender los iPhones, aunque lo que si me parece interesante es que su tecnología del touch screen dice que esta patentizado. Bueno un amigo Orlando Flores me paso un video muy interesante donde se muestra que un touch screen similar al de iPhone, incluso va mas allá, pareciéndose a lo que vimos en una película hace unos años.

Las aplicaciones que se muestran son aun más interesantes y creo que van en pro de un futuro sin límites para el UI para todos y no en pro del “Inc.”

iPhone: el tres en uno

Ayer 9 de enero del 2007 en la expo y conferencia anual de Apple llamada MacWorld, Steve Jobs en su keynote de entrada introdujo al mundo un nuevo ipod con touch screen y Wide screen, un teléfono revolucionario y un comunicador de Internet que quiebra la brecha de los demás. Estos tres dispositivos, son uno solo llamado el iPhone. Lo llama una reinvención del teléfono, por el hecho que sus funciones y sus maravillas y además de la facilidad de utilizar y porque es mucho mas “inteligente” que los smartphones.

Puedo describir y resumir lo que Jobs dijo en el keynote pero creo que es mejor que cada quien lo vea. El video del keynote lo pueden encontrar en este link. Ustedes ven esto y es increíble lo que se podrá hacer con este dispositivo. Osea la User Interfase es increíble lo innovador y fácil que es de utilizar. A mi no me gustan mucho los productos de Apple pero, yo quiero un iPhone, es así de bueno….

Algo interesante de este keynote es la fanaticada de Apple, el público esta metido de lleno a la charla. Se comen cualquier cosa que Steve Jobs dice, lo aplauden, gritan se rien. No solo es el hecho de estar allí, todo ellos comparten la emoción de Steve Jobs, todos ellos están emocionados, en realidad vale la pena ver el keynote, vale la pena vivirlo (si se puede) es una comunión. Véalo como lo que pasa en partido de su deporte favorito en ese momento se olvidan de la guerra de Irak, de la pobreza, del hambre de sus problemas y cuentas por cobrar. Así de hipnotizante es el keynote y el iPhone.

Pero volviendo a la realidad hay ciertas cosas que me pregunto. ¿Por qué no tiene expantion slot para memoria? ¿Qué tan durable será la pantalla? ¿Si los parches para mac OS X para MACS también se tiene que aplicar a iPhone? ¿Cuánto cuesta? ¿Cunado puedo tener uno?

Pues se algunas respuestas gracias a un poquito de investigación. El iPhone sale hasta junio y costara $499 el de 4 gigas y $599 el de 8 gigas. No tiene expantion slot y no se porque, talvez no es tan necesario y también para obligar a las personas a solo utilizar iTunes para pasar data. Pueden ver un resumen del iPhone en este video de cnet.

Es un dispositivo muy interesante y vale la pena considerar si se tiene el dinero, lo cual me trae al dilema si es un lujo o en realidad es una necesidad ya que nos facilita la existencia.

Wednesday, January 03, 2007

Nuevo año… ¿pero todo sigue igual?

Nuevo año, nuevos sueños, nuevas promesas, nuevas tragedias, nuevo de todo. Pero al final son ocurrencias de nuestras vidas que no importan el día, hora u ocasión, todo puede pasar.

El marco de tiempo que define el año 2006 estuvo lleno de protagonistas deportistas, políticos, criminales, artísticos, etc. acaparando la atención del mundo. Como todos los fin de años se hace un recuento de lo bueno, lo malo y horrible sobre eventos y las personas que influenciaron nuestras vidas que irónicamente no conocemos.

Pasa el recuento y los recuerdos de todo lo del año y de repente nos damos cuenta, “hey y que hay de nosotros”. Así, por un momento olvidamos todo al mundo y nos concentramos en “yo” el centro de universo, en nuestras metas para el nuevo año, que por marzo se pierden en el olvido, igual que los caminos y nuestros amores. Nos hacemos tantas metas y promesas que pareciera que fuéramos políticos tratando de ganar nuestro propio voto. Y aparentemente con la creciente población de individuos con síndromes de déficit de atención (hoy en días la mitad de las personas tienen algún déficit de atención) se repite y repite mas este fenómeno de olvidar las metas y substituirla por problemas insignificantes como: que voy a ponerme hoy, me dejo mi novio o novia, no baje mis 5 libras, deudas espantosas de tarjeta de crédito, nuevos gritos de la moda, el precio del combustible, la selección de mi país, el ultimo escándalo de un presidente, etc. Ósea todo aquello que nos acapara atención y que es noticia, sea de dominio público o de nuestras vidas personales.

Puedo hacer un recuento de todo lo importante que paso, las tendencias que los expertos concluyen, presentando mi opinión sobre algunos temas (aclaro yo no soy un experto, solo tengo un punto de vista mió y solo mió) puedo tratar de predecir las finanzas, innovaciones tecnológicas, etc. Pero en realidad son trivialidades, que carecen de sustancia humana y el valor incomparable de nuestras vivencias y experiencias, que en contraste, no son triviales. Se puede discutir la trivialidad del desarrollo de una tecnología o implementación masiva de una idea o prototipo que cambia nuestro vivir diario, como seria Internet inalámbrica gratis en toda una ciudad, la implementación exitosa de biodisel en Honduras, un virus que provoco la congestión del Internet por 34 minutos o cualquier evento deportivo mundial o de atención mundial.

Nuestras vivencias, que superan a los fenómenos de atención mundial, son pequeñeces muy densas en materia humana y no globos inmensos llenos de aire. Es difícil darse cuenta de lo simplemente bello y de valor imaginable que tiene estos eventos y experiencias: otro año que un matrimonio siguió juntos con sus hijos, otro año que sus hijos siguen firmes en no consumir drogas, otro año donde una madre soltera saca adelante a sus hijos, otro año donde una persona prefirió ayudar mensualmente a un necesitado (económico y emocional) en vez de gastar mensualmente ese dinero en mudadas de ropa sobrevaluadas para estar al “grito de la moda (y por cierto porque pagar por algo que solo dura el tiempo de un grito)”, la euforia por los niños que no murieron de una simple gripe o diarrea, incluso de niños también aprendieron a leer, escribir o utilizar una computadora.

Pero no todo es color de rosa, engrandecimiento de supuestas tragedias como perder una final de un evento deportivo, no ver un programa de televisión favorito, manchar nuestra camisa favorita, el fin de un noviazgo, bancarrota de una empresa (aunque esta ultima puede estar a discusión) no se comparan a sucesos como abortos innecesarios se pudieron prevenir, cuantos se dejo de aprender por estar jugando video juegos, ver MTV o hablar por teléfono, cuantos animales fueron brutalmente masacrados. Sumándole a las personas inocentes que fueron brutalmente asesinados o que sufrieron del hambre, el frió, la pobreza emocional, los suicidios…

Allí esta lo importante, eso es lo que se debe celebrar, llorar y sufrir, lo que ocurren en nuestras vidas, en nuestras familias, en nuestras relaciones mas intimas. Cuesta darse cuenta de que “no todo lo que brilla es oro” y que la leche derramada no merece ni una lagrima o robarnos una sonrisa. Al final puede ser que solo sean palabras escritas para llenar un blog, o son el resultado de extensiva meditación, incluso una rafa de pensamientos en un trance ideológico. No importa que sea esto, lo que si es importante es que sin interesar la hora, el día, el evento, debemos reflexionar continuamente y no perder el enfoque de que es trascendental y que importancia se le debe dar. Y lo difícil esta en no consumirnos y convertir nuestra vida en una vida llena de trivialidades de las cuales ni somos dueños, mas bien reflexionar y crear metas que progresivamente se convertirán en escalones de este “viaje” que llamamos vida.

Sunday, December 31, 2006

Ayyyy... te encuntro o no te encuentro con ifind

En estos días todo se trata de lo inalámbrico en el mundo de las computadoras. Tenemos WiFi, infrarrojo, bluetooth, WiMAX, etc. Es claro que surgirán servicios que aprovechan esta infraestructuras, que permiten las conexiones inalámbricas entre dispositivos, computadores y a Internet.

Uno de estos servicios que me intereso fue el ifind, desarrollado por senseable labs en la universidad de MIT. Este servicio consiste en un programa de instant messeging (mensajeria instantánea) con lista de contactos de estudiantes con coreo @mit.edu. Entonces si se esta en el campus conectado con wi-fi en uno de los, y tienes usuarios en tu lista de amigos (buddy list) podrás ver en un mapa del campus donde esta localizado tus compañeros.

Este sistema solo trabaja en el champús de MIT con laptops con tarjeta wi-fi porque la posición se determina calculando la fuerza de la señal con relación a los access points (los cuales son alrededor de 2,800). Así que con un manejan de error de uno par de metros podrás saber donde estas todos tus contactos conectados a la red wi-fi de MIT. Esto da facilidades de reunirse con los compañeros de forma más fácil, perseguir a tus amigos o alguna chica o chico, jugar con encuentros casuales y oportunos (serendipity).

Se puede bajar el código fuente del cliente, pero el código fuente del servidor no esta disponible. Pero si se desea el documento de el protocolo cliente/servidor, se puede escribir correo (a senseable-ifind at mit punto edu) solicitándoles el documento.

Esta tecnología puede se utilizada de formas muy interesantes por las organizaciones. Se imaginan empresas grandes que utilicen esto para mantener un control de donde están sus empelados trabajando. Quiere decir que sus empleados pueden estar trabajando en cualquier parte de la empresa con su laptop y pueden ser localizados fácilmente para sus reuniones.

Imagínense también tener un robot entregando correspondencia, o haciendo cualquier actividad rondando por la oficina. Pues también puede ser localizado por medio de este sistema.

El éxito de las ideas depende en la exactitud del sistema para calcular posición, velocidad, interoperabilidad y facilidad de implementación.

Panic! At the Debian Server






Una de las cosas más útiles de Windows y su GUI es el recycle bin. No existe peor cosa que borrar archivos (o datos valiosos) de una PC y más de un servidor. Si pasa eso, no debe haber pánico, solo se busca en el recycle bin y se recupera todo. Claro que si utilizamos la línea de comando de Windows y ejecutamos el siguiente comando:

C:\del

entonces el archivo no va al recycle bin, sino que es borrado.

A Partir de Windows XP tenemos la utilidad de restore, por si nos equivocamos de gran manera con alguna instalación, configuración de Windows, se puede recobrar. Claro siempre y cuando que se cree un checkpoint, como se puede ver aquí. Pero esto no ayuda recobrar los archivos borrados, sino recobrar cambios hechos al sistema.

¿Entonces que se debe hacer si borramos archivos? En realidad se debe tener un backup de archivos. Y que hay los archivos de sistema de un servidor? Pues se debe tener un backup de esos servidores para disminuir el downtime. Pero claro muchas veces no tenemos ni un backup, y lo único que nos queda es tratar de recobrar esos archivos.

Siempre escuchamos por allí que siempre es posible recobrar archivos borrados, incluso después de un format. La pregunta del millón es ¿cómo?. Primero debemos de dejar de trabajar con el disco, si es posible apagar la computadora. Después tenemos que investigar la estructura de nuestro filesystem. De esta forma se podrá saber las herramientas que existen para recobrar archivos borrados.

En mi experiencia con un servidor debían, donde se borraron archivos del sistema, el file system era reiserfs, un file system de tipo journaled soportado por Linux. Reiserfs guarda metada, entradas de directorio, bloques de inodes en un solo y combinado arbol B+. Entonces al borrar archivos lo que se hace es “podar” el árbol para eliminar el enlace correspondiente al archivo.

Lo primero que se debe hacer es pasar el disco donde borramos los archivos a otra computadora con Linux. Después debemos montar la el disco y hacer un backup de la data que existe actualmente. El backup nos sirve debido a que si ocurre un problema durante la recuperación de archivos que corrompe el disco por completó entonces no perdemos todo. Se tiene que recordar que el proceso de recuperación de archivos no siempre concluye con éxito. Una vez con el backup, proseguimos a recuperar los archivos. Para trabajar de la mejor forma necesitamos otro disco duro libre para hacer una copia de la partición donde están los archivos que deseamos recuperar. Entonces tendremos tres discos duros:

El del filesytem de nuestra maquina con Linux, el que deseamos salvar y el que funciona de backup.

  1. Revisar que tenemos instaladas las herramientas de reiserfs, para ello haga un simple

$ man reisefsck

o

$ reiserfsck.

Si no aparece nada entonces se debe instalar las herramientas. Para ello podemos utilizar yum (por si utilizamos fedora core o redhat)

$ yum install reiserfsprogs

  1. Una vez instalado seguimos a crear un backup de la partición que deseamos recuperar los archivos, hacemos lo siguiente:
    1. Bajamos al nivel de usuario 1 con

$ init 1

    1. Después desmontamos nuestra particiones suponiendo que la que queremos recuperar esta en sdb y el backup estaría en sdc

$ umount /dev/sdb1; umount /dev/sdc1

    1. Tocaría hacer el backup con ddrescue el origen es sdb y el destino es sdc.

$ ddrescue /dev/sdb /dev/sdc

  1. El momento de la verdad, utilizaremos reiserfsck para reconstruir el árbol. Lo aremos en backup para así poder intentar otros métodos.

$ reiserfsck –scan-whole-partition –rebuild-tree -l /root/recovery.log /dev/sdc1

Este proceso toma bastante tiempo en particiones grandes y todo depende en la velocidad de los discos. En un disco de 20 gigas me tomo alrededor de 8 horas.

La opcion scan-whole-partition revisa toda la partición, incluso la parte que esta vacia.

La opción –rebuild-tree se encarga de buscar los nodos y colocarlos en el árbol. Si por alguna razón no puede colocar el nodo en el árbol entonces coloca el archivo en un directorio llamado lost+found.

La opcion –l permite crear un log de recovery.

Conclusiones….

Este proceso ayuda, pero recobrar archvivos que no son parte del sistema operativo, pero cuando lo son no es como en Windows que solo tenemos que remplazar el archivo y todo funciona de maravilla. Se debe tomar los archivos que se necesitan y volver a instalar el sistema operativo, es porque se gataria demasiado esfuerzo tratar de dejar el Sistema operativo como estaba antes de ser borrado.

Se debe tener backups de todo, backups que sean verificables y continuos.

Finalmente nunca se debe trabajar con root en un servidor. Nunca, se debe crear usuarios destinados a cada servicio que el servidor provee, asi encapsulamos cualquier error y no se propaga. Aquí es donde chroot juega un papel importante.

Enlaces de que me ayudaron y espero que les ayuden…

http://antrix.net/journal/techtalk/reiserfs_data_recovery_howto.comments

http://www.cyberciti.biz/tips/repairing-reiserfs-file-system-with-reiserfsck.html

http://recover.sourceforge.net/unix/

http://docs.cs.byu.edu/docs/mounting/2.php

De regreso

Desde octubre no hago un post, eso no es bueno porque deseaba tener continuidad. Pero como siempre antes de un deadline se desea terminar varias cosas. Asi que para seguir esa tradición pienso terminar varios posts para terminar e iniciar 2006 y 2007 en ritmo…

Thursday, October 12, 2006

Un poquito de Protothreades, Duff’s Device y Loop-Unrolling

Para los que desean meterse mas al rollo de protothreads y otros trucos de optimización
vean este link

http://it.slashdot.org/article.pl?sid=05/10/06/2223232&from=rss

esta en ingles pero esta interesante, y menciona a duff’s device.

Si se pierden con duff's device y no sabes que beneficio da, vean este articulo sobre loop-unrolling donde duff's device es un tipo de loop-unrolling. Loop-unrolling consiste en forzar la optimización de un loop, con conocimientos previos de como el compilador optimiza. Como verán esta es otro ejemplo donde el estudio de compiladores y clases similares ayudan en otros campos, como la programación.

Si se desea conocer más de loop unrolling lean este paper de una forma de loop unrolling propuesta. http://www2.cs.uh.edu/~jhuang/JCH/JC/loop.pdf#search=%22loop%20unrolling%22

Por cierto el termino loop unrolling o desenrollado de una iteración viene del hecho de que se "desenrolla" la iteración para que haga mas trabajo en menos iteraciones.

Aunque todavía tengo que pensar de cómo implemento en vida real duff’s device. El loop-unrolling mencionado en el link anterior es mas fácil de implementar, pero el duff’s device si esta medio “fumado” como dicen por allí.

Wednesday, September 27, 2006

Hack Games

Para los que quieren poner a pruebas sus conocimientos de hackeo (sigo con la duda que e en Honduras no existen “real hackers”). Con un real hacker me refiero a alguien que investiga, estudia y hace publicaciones de las deficiencias en al de los sistemas de información (y su infraestructura.) También un hacker es alguien que busca una solución innovadora a un “problema”. Bueno esto es una definición que e basado en lecturas y platicar con personas.

Pero volviendo a hackear, si les gusta ejercitar su mente, ingresen a la siguiente pagina de regalsweb donde de un solo empezaran el juego en el primer nivel. Yo hasta el momento de este post, llegue hasta el tercero porque allí se vuelven las cosas más interesantes y porque yo no soy un real hacker y no llego ni a cracker, así que no e pasado. Pero solo llevo como 30 minutos pesando que ondas y sigo sin saber que hacer :P.

Pero la razón primordial de seguir este juego es aprender a desarrollar aplicaciones seguras desde el análisis y no hacerlo después del desastre. Así que véanlo como una actividad recreativa, ilustrativa y incluso talvez les ayuda a conquistar a una chava(o).

Saturday, September 02, 2006

AOL 9.0: “free” but in jail



(foto tomada de networkworld.com)

El programa llamado (igual que el nombre de la compañía) American Online versión 9.0 (free edition) fue categorizado como “badware”, (que seria lo mismo que “malware”) por el grupo StopBadware.org. StopBadware encontró que AOL hacia bastantes modificaciones sin permiso del usuario. Entonces en esta evaluación inicial se esta considerando como badware a este programita. Se puede leer el reporte completo en este link.

StopBadware es una organización fundada con el propósito de combatiar el malware encontrado en programas bajados de Internet. Debido a que a veces se instala este software y no existe un ente regulador de lo que viene en el freeware que se baja de Internet, por lo tanto ellos decidieron empezar esta campaña en contra del malware o badware como ellos le dicen. Pueden conocer más de ellos en la página mencionada anteriormente.

Volviendo AOL, esto nos muestra que no se debe confiar en las compañías demasiado, incluso si son de renombre mundial. Lo interesante de esto es que no es el único programa de AOL que trae malware, el AIM también tiene problemas similares donde además instala Viewpoint Media Player. Esta instalación es mencionada en el EUA, pero par quitarlo se tiene que hackear el AIM. Pueden leer más del malware de AOL aquí y en este otro link.

Esto debe ser un aviso para el consumidor de freeware, debido a que no sabemos que es lo que los fabricantes envían con su software. Incluso deberíamos desconfiar del software de nombres reconocidos como google, skype, etc. porque es posible que contengan vulnerabilidades explotables, envíen información de nosotros, etc.. Cosas que pueden estipulados en el EUA, pero como son tan grandes que “nadie” los lee. Así que seria bueno leerlos e investigar para darnos cuenta de que metemos en nuestras computadoras. Y si aun mejor unirsos a StopBadware y “echarle a jura” a cualquiera de estas compañías que creen programas con malware.

Thursday, August 31, 2006

DD-WRT: router de $60 a $600 .. bueno en teoria

Hace alrededor un mes, mi router un linksys wrt54gs se volvió insoportable, la señal a corta distancia era mala y a mi hermano (que fue porque lo compre) no le llagaba con suficiente fuerza. El punto de este router con speedboster es no tener que pasar un cable por dos ventanas a través de un patio.

Tenia pendiente cambiarle el fimware de linksys, pero preferí hacerle un upgrade del linksys, fue peor. Aparentemente tenia que reiniciarlos después del upgrade, pero bueno al final casi se volvió inservible. Un netgear DI614 (que preste a mis vecinos) tenía mejor señal.

Por ello ya días quería cambiarle el firmware. Conste que si se le quita el fimware que trae, adiós garantía. Verán, algunas versiones de estos routers traían Linux, así que varios grupos decidieron crear firmware para estos routers a base de Linux. Cambiarle el firmware el router se vuelve más “profesional” y deja de ser de “juguete”. Se puede hacer telnet, ssh, además instalar software tipo snort y muchas otras cosas.

Inicialmente pretendí instalar OpenWRT pero nunca me decidí y además me parecía que necesitaba tiempo. Pero un día me dieron el tip (gracias a efutch) de utilizar dd-wrt. Así que baje la versión básica para mi router y seguí estas instrucciones.

Las seguí al pie de letra, pero al final tuve un problema después del último paso, que consiste en mantener el botón de reset presionado por 30 segundos para regresar el router a “factory settings”. Aquí es donde tuve un pequeño susto, creí que el router se había convertido en un ladrillo, porque el router nunca empezó. ¿Como llegue a esta conclusión? Bueno, la luz de “power” nunca dejo de parpadear; espere un minuto y sigio parpadeando. Así que con gran ansiedad lo desconecte y volví a conectar de la fuente de poder. Estaba como algunos niños en películas de terror donde se cubren los ojos pero están viendo la película por una ranura. Bueno el router empezó bien y el susto solo fue eso, un susto.

El nuevo firmware es una maravilla, porque le permite al usuario hacer de todo. No voy a entrar en detalle sobre que permite, pero nos permite hasta controlar Xmit, por que antena queremos recibir y por cual queremos enviar esto además de lo que son los servicios de ssh, telnet, wpa2, wpa, configurar servidor radius, filtros por macaddress, incluso nos permite configurar el raouter de tal forma que se convierta en un hotspot. Otra par de cosas interesantes es el site survey, que permite detectar otras redes wireless en nuestro entreno para que estas no interfieran con la nuestra. También podemos utilizar el router como replicador de otra señal de otro router, muy útil una red SOHO.

En fin, trae tantas opciones que se puede pasar días y días “experimentando con ellas”. Dado el problema planteado anteriormente, decidí habilitar lo que es afterburner (o speedbooster de linksys) y frame burst además de subir al Xmit a 70. En este sitio pueden ver que significan estos términos y otros más. Bueno, fue algo tonto, pero es como tener un deportivo y tratar de ver cuanto a cuantos kilómetros por hora lo puede hacer llegar. Por que fue tonto, pues afterburner y frame-burst es lo mismo, bueno casi. Afterburner es un tipo de frame-burst propietario broadcom, que además utiliza compresión. Supongo que están los dos, para mejorar la velocidad donde los clientes no tienen equipos de broadcom.

Estuve probando para ver combinación es la mejor, pero siempre el router fallaba, como que se trababa y dejaba de procesar o simplemente se calentaba. No se en detalle pero era un continuo dolor de cabeza estar desconectado y conectando el router para poder hacerlo funcionar. Al final esta es mi configuración:

Xmit: con 70mW (el limite es 251mw pero mas de 70 puede dañar el equipo)

Frameburst: disable

Afterburner: disable

Encriptación: WPA con AES (TKIP es mas seguro así que pueden utilizar ese pero no e probado que tal).

Además en la sección de IP Filtering (recomendación que trae la ayuda) es que si se tienen aplicaciones P2P se deben subir el número de puertos y bajar los timeouts de TCP y UDP. Si no se hace esto, la aplicación P2P deja demasiados puertos abiertos y se consumen los recursos. Lo pueden leer en el siguiente enunciado tomado de la ayuda de dd-wrt:

IP Filter Settings

If you have any peer-to-peer (P2P) applications running on your network please increase the maximum ports and lower the TCP/UDP timeouts. This is necessary to maintain router stability because peer-to-peer applications open many connections and don't close them properly. Consider using these:

Maximum Ports: 4096

TCP Timeout: 120 sec

UDP Timeout: 120 sec

Se puede ver como un tipo de ataque DoS. Seria interesante investigar que tan subsistidles son estos aparatos a ataques de DoS.

Finalmente le configure un reboot periódico todos los días cuando no estoy en mi casa, porque no cae mal un reboot diario en este tipo de aparatos “caseros”. Esta es mi configuración, me a trabajado de forma excelente, recibo la señal en cualquier parte de mi casa, incluso donde mis vecinos. Espero que le ayude a alguien si tienen preguntas pregúnteme por medio de los comentarios… cheers…

Thursday, August 10, 2006

Evidencia

Al ver lo ocurrido el pasado 9 de Agosto de 2006 en la salida al sur, en la capital de Honduras, Tegucigalpa, llegue a la triste conclusión que Honduras esta perdido en estos momentos. Se vive en un estado de completa anarquía, negligencia y negación de la realidad. No me mal interpreten, soy orgulloso Hondureño (Catracho), y posiblemente debiera estar haciendo mas por Honduras que escribir, pero sinceramente Honduras seguirá en picada siempre y cuando nosotros permitamos este tipo de acciones. ( Y el mundo seguirá en picada si seguí permitiendo las acciones de EEUU e Israel contra el mundo árabe, en vez de llevar apoyo y justicia a África.)

Los actos de vandalismo de los ciudadanos (maestros, civiles, niños, etc) en contra de la fuerzas de seguridad hondureña, propiedad privada, etc. son evidencia de que madera estamos hechos los hondureños. Sigo insistiendo que un individuo no da a conocer sus verdaderos colores y no se conoce a si mismo, hasta que es sometido a situaciones insólitas para el. Denle a un persona poder, y verán si es líder o tirano, denle dinero a cualquiera y se darán cuenta si es un inversionista o un consumista. Denle libertad de expresión a un hondureño, se darán cuenta si son personas o “animales”.

Es curioso como en este tipo de “eventos” todo mundo es una victima y nadie es el agresor. Según muestran las imagines los agresores fueron el bloque popular, maestros, o lo que sea que se les quiera llamar, simplemente como lo dijo uno de los oficiales heridos “si nosotros fuéramos los agresores, la peor parte se la lleva ellos” (o algo así). Ahora pongámonos en la posición de un oficial de seguridad, ¿que hacer cuando me amenazan con agredirme? Simple, lo que cualquier de nosotros haría, responder. Ahora que nos dice la historia lo que haría Jesucristo, “si alguien te pega en la mejilla derecha, vuélvela también la otra”.

Aunque suene supernatural lo que propone Jesucristo, me parece que los oficiales tenían que seguir esa misma filosofía. Simplemente se establece un perímetro de contención (algo que amerita mucha planifacion) aguantar y seguir aguantando, por que al final lo que se quiere es evitar los conflictos (¿o no ?). Así que no culpo a ningún oficial por sus acciones, a quienes culpo son los altos dirigente y las máximas autoridades. Si talvez es fácil pensar de esta forma cuando se esta tranquilito detrás de una computadora, pero allí esta el detalle, son pocos lo que nacen con la frialdad para lidiar en estas situaciones, pero serian muchos los que pudieran, ser capacitados para afrontar cualquier situación de este tipo con mas cordura. Lo que me lleva a la conclusión (la cual llegue hace muchos años) que la raíz de todos estos problemas es la educación. Lo irónico es que evidencia de esto son los mismos educadores. Pero por lo momentos solo queda reflexionar en estas acciones y tratar con un esfuerzo casi super humano, que sea la ultima vez que Honduras vea tales eventos en sus tierras.

Por cierto (desviandome y) volviendo a los conflictos en el medio oriente (Líbano, Afganistán, Irak, etc.), el cual nos muestra lo avaro que es un imperio (EEUU) y lo rencoroso que puede ser una sociedad que históricamente “a sufridos” (Judíos). ¿Me lleva a pregruntarme si será que estos características se heredan o peor aun.. seran contagiosas? Me pregunto esto porque, aparentemente los hondureños estamos siendo rencorosos y avaros, será que lo heredamos o simplemente fuimos contagiados….

“Por fin puedo crear mi anti-malware”

“Cult of the Dead Cow” nn grupo muy bien conocido en los ciclos de la seguridad computacional, han desarrollado una herramienta de búsqueda de malware utilizando Google. Aparentemente miembros de este groupo, con la ayuda de código de HD Moore, (jefe de proyecto de Mestaspolit Framwork) ayudaron Valsmith and Danny Quist para crear una base de datos de malware. La pagina de la base de datos de malware esta localizada en este link.

Este proyecto de Offensive Computing fue desarrollado con recursos de Valsmith and Danny Quist y es independiente de Culto f the Dead Cow y HD Moore, aunque estos brindan su apoyo.

El proyecto consite en brindar una base de datos de información de malware, similar a la que brinda Symantec y Mcafee, pero con la diferencia que brinda información mas puntual sobre el malware como firmas (md5, sha-1 y sha-256) disassembly del malware y incluso muestras “vivas y coleantes” del malware. También se puede suministrar malware a la base de datos, el cual será analizado y después se decidirá si se adiciona a la base de datos.

Si se desea buscar y bajar el malware, lo único que se necesita es un email valido para registrarse y listo, en cuestión de un minuto ya se puede estar buscando en la base de datos. Ahora que significa esto, pues el lado malo es que las personas ya pueden buscar malware y distribuirlo con mas facilidad, lo bueno es que ahora cualquier puede con mas facilidad crear software para detección y eliminación de malware. Esta última razón es la razón principal de la existencia de este proyecto, brindar información competente para la lucha contra el malware.

Seria interesante ver si en honduras alguien se anima a empezar un proyecto que utiliza sabiamente esta base de datos, o incluso talvez alguna universidad lo tenga como propuesta de examen de gradación.

Asi que espero que griten al cielo “por fin puedo crear mi anti-malware.."

Referencias:

http://www.offensivecomputing.net/

http://www.itnews.com.au/newsstory.aspx?CIaNID=35006

http://www.esecurityplanet.com//article.php/3625406

Monday, August 07, 2006

Curiosidad de Grep

Según man(1) grep busca en un archivo el imput que se le especifique por medio de un patrono y imprime lo que encuentra. Por ejemplo

grep hola archivo.txt

Busca en archivo.txt todas las ocurrencias de hola y imprime la línea que contiene hola.

Lo interesante es si se escribe solo lo siguiente:

grep hola

Se da la ilusión como que pasa algo malo porque no pasa nada. Si presiono ctrl. + c nada sucede (todo esto en MINIX). Lo que sucede es que grep esta leyendo de la línea de comando, entonces si se escribe hola y se presiona enter, entonces grep imprimirá “hola”. Si se escribe “hola” como estas, entones grep imprimirá “hola como estas”.

En MINIX si se desea enviar una señal de TERM, entonces se debe utilizar ctrl. + d, porque ctrl. + c no funciona.