“Mi estilo es el arte de luchar, sin luchar”

Bajo presupuesto + Genialidad

2008-01-14 16:17:29-06

Ocio

caray...

Permalink: http://www.mononeurona.org/users/entry/vendaval/1054


Fuma!!!

2008-01-14 16:12:59-06

Ocio


Bueno sigan la liga:::

http://productosdehuevos.com/fuma/
saludos a todos.

Permalink: http://www.mononeurona.org/users/entry/vendaval/1053


A small price to pay for immortality.

2008-01-12 09:40:39-06

General


Es un comercial muy bueno, que me pone a pensar en que hay que hacer algo...Grandioso.


saludos.

Permalink: http://www.mononeurona.org/users/entry/vendaval/1050


Responsabilidades

2008-01-09 22:31:35-06

Software

De manera algo general diré que la Mononeurona la hace gente con intereses e ideologías en común. todos ponemos algo de nuestro conocimiento a disposición de los demás, aarkerio entre otros conoce el potencial de la gente involucrada en  esta pagina -donde tengo honrosamente algunos megabytes ocupados entre tonterías y manuales- esta pagina tiene ya frutos en cuanto a difusión y reconocimiento. pero la Mononeurona es mas...

Me da gusto formar parte de la Mononeurona, de estudiar una carrera que amo y no tener una cabeza tan dura, y por que no es tan dura escribo esto:

Muchos nos dedicamos (o dedicaremos) al desarrollo de software, y esto es en muchos casos peligroso, hoy todos tenemos una computadora para aplicaciones cotidianas, desde el celular hasta la laptop, maquinas que requieren de un software para funcionar. en estas maquinas ponemos nuestro dinero, educación, diversión e incluso hasta la vida, si vamos a poner todo ese peso en un software, mas vale que este bien diseñado, que sea escalable y modificable sobre todo de calidad. para mi gusto todas las aplicaciones deberían tener el toque academico.

Claro el mundo seria mejor si todo fuera como te lo enseñan en la escuela, claro, las cosas no son asi, la gente se desespera, pierde dinero, muere por errores en cálculos, programación y humanos, tal vez es un caso extremo, pero  esas maquinas son parte de nosotros, alguien es tal o cual numero en una base de datos o tiene esta o aquella IP, correo electrónico, blog, etc.

Poca gente dedicada a esto sabe como y cuando instalar parches, imaginemos lo siguiente, un servidor en producción No Debe tener teclado, mouse y mucho menos monitor, solo debe ser visto vía ssh, si funciona dejalo, si se ha publicado algún parche critico, no lo instales de inmediato, infórmate de como les ha funcionado a los demás, no te puedes dar el lujo de instalarlo y que te provoque algún problema con tu servidor (han odio de soluciones que causan otros problemas, son comunes). tu software no sera el mas nuevo por la misma razón...que te puede costar si no eres precavidos, horas extras de trabajo, dinero, mucho dinero, tu empleo, etc.

La labor del respaldo es critica y tediosa, consume recursos y espacio, pero siempre es necesaria.

Para cada área posible dentro de este basto mundo de las TI, se tiene que ser responsable...Son muchas ideas, poco tiempo...

La ingeniería del Software es (muy)importante.
La administración de los recursos es vital en muchos casos.
La lo que hagamos hoy en nuestras computadoras puede revolucionar el mundo del mañana, hay que ser cuidadosos.

Disculpen mas que una entrada son ideas escritas sin mucha coherencia.

Permalink: http://www.mononeurona.org/users/entry/vendaval/1041


Queridos Reyes Magos

2008-01-05 09:16:06-06

Ocio

Queridos Reyes Magos este año me he portado muy bien, ayude a los viejitos con mandado y a tirar la basura, compre tarjetas un kilo de ayuda y unas de la Unicef, ya mande una pelotota para el jugueton, envie atún a chiapas, regale 17 ubuntus, 12 kubuntus y un edubuntu a todos los que no estudiaban nada relacionado con las TI y a los que lo hacian les dije que se los daba para que lo aprendieran y que después cambiaran a otra distribucion que les permitiera aprender mas, si no les partía su "$#%#$%% madr"#$"#$, enseñe algo álgebra lineal sin ningún costo (tal vez este no cuente por que me gusto la chamaca), y escribí código eficiente para usos variados (pocas lineas pero muy efectivas) y me gustara sugerir una lista de obsequios que me serian muy utiles este año que empieza:

1.-The Art of Computer Programming

2.-ACER Ferrari 5000  De preferencia con Windows Vista Ultimate Force Attack of MS. o como Carajos se llame.

3.-PS3 para esas tardes de lluvia, cuando uno no puede salir por que se inundo.

4.-
Tanenbaum, Andrew. "Sistemas operativos: diseño e implementacion" (no requiere presentacion)

5.-UML Y PATRONES - Introducción al Análisis y Diseño Orientado a Objetos.

6.-NetBSD 4.0 para no descargarlo de la MN.

7.-Un smart por que parece de juguete.

8.-Una chamarra de la UAM-AZC por que hace frio.

9.-Un trabajo aqui, aqui o aqui.

10.-Paz para los Mononeurones de buena Voluntad  y que sus deseos se realicen con el peso del esfuerzo y dedicación.

Gracias.

P.D. El teléfono de la chamaca que vende juguetes enfrente de mi puesto no me viene mal tampoco. ;)

Permalink: http://www.mononeurona.org/users/entry/vendaval/1033


Civil War

2007-12-05 15:27:54-06

Ocio

Confieso una pasion por algunos superheroes del universo marvel como Spiderman, IronMan (favorito), Reed Richards.
Recien en una visita aun centro comercial me encontre un "Comic" de una saga muy interesante, muchas cosas pasan y bueno una imagen vale mas que mil palabras:

alt
alt

Permalink: http://www.mononeurona.org/users/entry/vendaval/990


Aprendiendo C (7ma. Parte)

2007-11-27 12:55:09-06

Software

El lenguaje de programación C permite el uso de funciones, estas son la base de lo que se llama programación modular y que permite la reutilización del software. Así pues veremos como implementar nuestras propias funciones. Hasta el momento solo hemos usado funciones definidas en las bibliotecas estándar como printf(), scanf(), getc(), toupper(), etc. Veremos unos ejemplos sencillos:

/*Programa que recibe un arreglo de valores float y devuelve su potencia n*/
#include<stdio.h>

float SuperPower(float base, int potencia);//Prototipo de la funcion

int main()
{
int i,j,tam;
printf("dame el tamanio del arreglo\n");
scanf("%d",&tam);

float A[tam];

printf("Dame los valores del arreglo\n");
for(i=0;i<tam;i++)
    scanf("%f", &A[i]);

printf("dame la potencia\n");
scanf("%d",&j);

for(i=0;i<tam;i++)
    printf("%f\t%f\n", A[i],SuperPower(A[i],j)); //Llamada a la funcion

return 0;
}

float SuperPower(float base,int potencia)//definicion
{
int i;
float acumulador=1;
if(potencia>0)
    {
    for(i=0;i<potencia;i++)
        acumulador*=base;
    }
else
    acumulador=1/SuperPower(base,-potencia);//pequenia recursion

printf("%f^%d ->", base, potencia);

return acumulador;
}


Como podemos ver en la tenemos algo que se llama “prototipo” de la función definido antes de la función main(), esta es una notación heredada del lenguaje c++ y que se adopto para el estándar ANSI C. Normalmente una función como en matemáticas solo regresa un valor o ninguno (Tipo void), este valor tiene asociado un tipo que puede ser char, int, float, etc. En el ejemplo es un tipo double, tenemos además el nombre con el que se invocara a la función “SuperPower()” entre paréntesis tenemos la lista de parámetros que se definen por su tipo y un nombre, el nombre es opcional, sin embargo, es importante ponerlo con fines de documentación y claridad del código, tambien puede no tener parametros en cuyo caso se especifica como void. El prototipo termina siempre en punto y coma ‘;’.

Dentro de la función main() tenemos las invocaciones a la función “SuperPower()” con sus respectivos argumentos, ordenados por el tipo y orden que esta especificada en el prototipo de la función, exactamente la función de dicho prototipo es indicar al compilador el orden y numero de parámetros que deberá tener una función, esto facilita la detección de errores por parte del compilador.

Tenemos también la definición de la función, esto incluye los parámetros descritos en el prototipo y el cuerpo de la función, el cuerpo incluye las instrucciones que se realizaran cuando esta es llamada. La ubicación de dicha definición es arbitraria, los viejos hackers en UNIX solían ubicarlas al inicio antes de la función main(), esto por sus costumbres heredadas del ENSAMBLER. Actualmente la literatura especializada en el tema suele ubicar las definiciones de las funciones después del a función main.

Dentro de la definición vemos la siguiente instrucción:
    acumulador*=base;
El operador "*=" se usa para abreviar la operación
    acumulador =acumulador * base;
Existen las corespondientes abreviasiones para los operadores de suma,resta, división, modulo, etc. estos operadores se llaman oficialmente operadores de asignación

También tenemos una segunda llamada ala funcion dentro de si misma, este tecnica de programacion se llama recursión y hare una nota breve sobre ella en la próxima entrada, sin embargo, es importante que notes que la funcion hace una llamada a si misma con alguna modificacion en los argumentos, a la hora de correr el programa tendras una salida con valores y una flecha que te muestra cuantas llamadas se hicieron antes de regresar el valor final despues de la tabulacion. para el caso particular de la potencias solo se hacen 2 máximo, pero en otros programas usaremos estas "banderas" para fines explicativos.

La utilidad de las funciones es grande, pero es mí deber mencionar que la existencia de muchas funciones dentro de un programa facilita su depuración, sin embargo, disminuye su velocidad. Además es un tema amplio, tratare de explicar la mayoría de los asuntos de interés. Veamos algo distinto y que es importante cuando se trabaja en grupos y se requiere que un grupo de programadores trabajen sobre una misma serie de funciones. Se volvería tedioso tener que escribir cada función dentro del mismo archivo, aun cuando solo sea un “copy&paste”, para esto podemos crear nuestras propias bibliotecas y permitir que el resto de los programadores solo las enlacen. Vemos como se hace, la verdad no tiene mucho chiste, pero habrá que explicarlo con un ejemplo:


/*/home/vendaval/funcion.c*/
/*Programa que recibe un arreglo de valores float y devuelve su potencia n*/
#include <stdio.h>
#include "vendaval.h"

int main()
{
int i,j,tam;
printf("dame el tamanio del arreglo\n");
scanf("%d",&tam);

float A[tam];

printf("Dame los valores del arreglo\n");
for(i=0;i<tam;i++)
    scanf("%f", &A[i]);

printf("dame la potencia\n");
scanf("%d",&j);

for(i=0;i<tam;i++)
    printf("%f\t%f\n", A[i],SuperPower(A[i],j));

return 0;
}

------------------------------------------------------------------------------------------------------------------------

/*/home/vendaval/vendaval.h*/
#include<stdio.h>

float SuperPower(float base, int potencia);//Prototipo de la funcion

float SuperPower(float base,int potencia)//definicion
{
int i;
float acumulador=1;
if(potencia>0)
    {
    for(i=0;i<potencia;i++)
        acumulador*=base;
    }
else
    acumulador=1/SuperPower(base,-potencia);//pequenia recursion

printf("%f^%d ->", base, potencia);

return acumulador;
}


Como notaras solo habrá que listar los prototipos y después las definiciones de cada función. Simple ¿no?, luego solo lo metemos a un archivo cuyo postfijo o extensión sea “.h”.

Otro asunto es cuando se hace la inclusión de la biblioteca por medio de la directiva #include, en este caso usamos comillas dobles, esto es por que la biblioteca esta en el mismo directorio que el archivo con la función principal,
Usualmente en Linux hay un directorio "/usr/include" que tiene todas las bibliotecas estandar -desconozco como sea para los BSDs, Solaris 9 (el de la UAM) lo tiene- el hecho es que si quieres invocar tu biblioteca con '<' y '>' necesitas moverlo a la ubicación de las demás bibliotecas, en linux la antes citada.

Breviario cultural: La palabra “parámetros” solo se usa cuando hacemos referencia al prototipo o definición de la función, cuando hacemos referencia a la función cuando esta es llamada usamos “argumentos”.

Hoy aprendimos:
1.-Prototipo, definición y llamada de una función.
 2.-Creación y uso de bibliotecas de funciones.

En la siguiente entrada hablaremos mas detalladamente de las funciones, incluyendo una breve nota de recursión.

Permalink: http://www.mononeurona.org/users/entry/vendaval/975


Aprendiendo C (Apendice C -"a Revisar")

2007-11-23 23:19:34-06

Software

Nota del Autor. Deseo que expresen sus dudas y opiniones para que este apéndice se verdaderamente enriquecedor para los lectores de la obra final, de momento es pequeño por que mis conocimientos en el area son reducidos.

Apéndice C: Notas breves sobre licencias libres

 Aunque hemos pretendido ser formales en los aspectos técnicos del lenguaje C, existen otros asuntos que es conveniente tratar cuando se crea software. Esto es las licencias.

 El software como cualquier otra obra de autoría propia, el autor tiene todos los derechos sobre el esto es lo que se llama copyright. Cuando decidimos liberar nuestra obra podemos hacerlo en diferentes formas, una –y la menos recomendable- es dejarla al dominio publico, es sin duda la forma mas sencilla porque solo hay que dejarla sin copyright. Esta forma de liberar la obra nos deja sin los recursos para poder demostrar la autoría de la obra y con ello sus derechos.

 La otra forma es por medio de una licencia “libre” u”OpenSource”, esto se hace basándonos en el copyright, aunque normalmente este recurso se usa para limitar la libertad del usuario del software, también se puede usar para lo contrario, de esta idea han nacido nazcan licencias especiales que dan privilegios de Uso, Copia, modificación, redistribución, tal vez bajo ciertas restricciones propias de cada licencia.

 En cuanto a las licencias su proliferación es increíble aunque las mas usadas son GPL,  BSD y MIT. Esto para software, pero ningún software es bueno si no tiene su documentación y esta también hay que licenciarla tenemos opciones como Creative Commons, GNU FDL y por supuesto Mononeurona Commons License bajo el cual se licencia el presente trabajo.

 La elección de la licencia es personal y deberá ser adecuada para la obra, usaremos un ejemplo sencillo para mostrar los pasos del licenciamiento en este caso con licencia 4-clause BSD (Original BSD)

 1.-Debemos agregar el copyright con año y nombre

//”Copyright © 2007 , Alberto Rodríguez Sánchez  (Vendaval) all rights reserved”
/*University of California, Berkeley*/

 Nota que use “copyright” y no derechos de copia o algo similar, no uses traducciones en especial cuando usas licencias en ingles. Cuando tú obra tenga varias versiones a través de los años incluirás TODOS esos años.

 2.-Debemos agregar la nota que establezca que se puede copiar bajo los términos de la licencia elegida. en este caso Original BSD, pero es lo mismo para GPL o MIT.

 3.-Se debe entregar una copia completa de la licencia junto con el código fuente, suele entregarse en un archivo con el extraño nombre “LICENSE”. En este caso les dejo un enlace a la licencia BSD.

Un pequeño ejemplo con este programa:

/* Copyright (c) 2007, Alberto Rodriguez Sanchez "vendaval"
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the COLECTIVO MONONEURONA nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY ALBERTO RODRIGUEZ SANCHEZ "VENDAVAL
" ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL
ALBERTO RODRIGUEZ SANCHEZ "VENDAVAL" BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#include<stdio.h>

int main()
{
printf(“HOLA SANDRA”);

return 0;
}//Fin funcion principal

Nota Final.

Aunque muchos prefieren la licencia GPL v2, explico que de nuevo que tiene que ver con preferencias personales o las necesidades especiales del proyecto.

El objetivo de esta pequeña nota es introducir al tema de las licencias que es en realidad complejo y extenso, pero con este pequeño ejemplo podemos hacer valer nuestros derechos y nuestra filosofía.


Para Saber mas:
www.gnu.org/licenses
www.opensource.org

y google.

Permalink: http://www.mononeurona.org/users/entry/vendaval/971


Aprendiendo C (6ta Parte)

2007-11-17 11:43:10-06

Software

Comencemos con un ejemplo mas o menos sencillo:

#include<stdio.h>
#include<ctype.h>/*biblioteca que proporciona la funcion tolower*/

int main()/*inicio funcion principal*/
{
int A1[][3]={{1,2,3},{0,9,8},{5,6,4}};
int A2[][3]={{9,10,31415},{217,3000,2},{}};
int i,j,n,m;
char c;

printf("\n\nMenu\nMostrar arreglo A1 y A2->a\n");
printf("Crear y mostrar nuevo arreglo->b\n\n");
scanf("%c", &c);
c=tolower(c);/*cambiamos a minusculas*/

switch(c)
{
    case 'a':
        printf("A1:\n");
        for(i=0;i<3;i++)
        {
        for(j=0;j<3;j++)
            printf("%d ",A1[i][j]);
        printf("\n");
        }
       
        printf("\n\nA2:\n");
        for(i=0;i<3;i++)
        {
        for(j=0;j<3;j++)
            printf("%d2 1º",A2[i][j]);
        printf("\n");
        }
        break;
       
    case 'b':
        {
        printf("Introduce 2 numeros enteros");
        scanf("%d %d", &m, &n);
        int B[m][n];
        printf("Introduce %d elementos\n",m*n);
        for(i=0;i<m;i++)
            for(j=0;j<n;j++)
                scanf("%d",&B[i][j]);
        printf("El arreglo que introduciste es:\n");
       
        for(i=0;i<m;i++)
            {
            for(j=0;j<n;j++)
                printf("%d ",B[i][j]);
            printf("\n");
            }
        }
        break;
       
   
    default:
        printf("Entrada no valida\n");
        break;
}   

return 0;
}//fin funcion principal


Entre las cosas nuevas que encontraremos en este programa están los arreglos bidimencionales, tememos la declaración y asignación de valor de A1 y A2, para denotar cada fila se usa un par de llaves "{}", observa que A2 tienen el ultimo grupo de llaves vacío, el compilador les asignara el valor 0 a todos los componentes de esa fila, así cuando desees un arreglo con todos sus valores 0 puedes declarlo como Arreglo[tamaño]={0}; darle valor al primer elemento es necesario.

Los arreglos bidimencionales son muy utiles para representar tablas, grafos, matrices, etc. y son una facilidad de la programacion, al igual que los arreglos de una dimensión, son estructuras de datos que tienen un mismo tipo y que estan ordenados en posiciones contiguas de memoria,en la declaracion de A1 y A2 nota que solo declare el numero de filas (3), esto es porque C require sabes cuantas posiciones debe recorrer antes de aumentar una fila, pues todos los datos estan "alineados" en memoria.

Tenemos una estructura de control nueva switch(), Esta toma el valor de su argumento que puede ser un entero o un char y busca entre los casos (case) para ejecutar una acción, normalmente existe una expresión default que se realiza en caso de que la entrada no coincida con ningún caso. esta expresión default es opcional. tambien es de notarse que cada caso termina con "break", esto sale de switch y continua ejecutando la instruccion despues de la llave del cierre de switch. en el ultimo caso o caso default al final de switch no es necesario poner el break,pero es mejor ponerlo por claridad. la estructura basica es :

switch(Variable entera o char)
{
case var1:
                instruciones
                break
case var2:
                instruciones
                break::
case var3:
                instruciones
                break:
......
default:
                instruciones
                break:
}

Tambien tenemos el uso de la función tolower() de la biblioteca estandar ctype.h, esta funcion tomauncaracter y lo convierte a minuscula si es mayuscula, de lo contrario devuelve el mismo caracter. existe su contrario que va de minusculas a mayusculas, esta función se llama toupper() y se utiliza de la misma manera.

Existen muchas funciones en diversas bibliotecas que son parte del estandar ASCI,aun no se como presentare dichas funciones, de momento usare algunas y explicare su uso y biblioteca que contiene su "prototipo". En la literatura técnica primero se enseñan las funciones y luego los arreglos, supongo que con fines pedagogicos. veremos funciones en la siguiente entrada.

Hoy vimos:

1.-Declaración de arreglos Bidimencionales.
2.-Recorrido de arreglos bidimencionales.
3.-Instrucción switch..case..default
4.-Casos especiales de uso de switch.
5.-Función tolower y toupper.

Dudas en los comentarios.

Nota: El programa presentado esta escrito de una manera "poco practica", esto con fines de hacer versiones mejoradas de el.

Permalink: http://www.mononeurona.org/users/entry/vendaval/954


Como en el ajedrez

2007-11-14 09:10:26-06

Ciencia y Tecnologia

Mi camino sobre GNU/Linux fue asi:

Debian GNU/Linux potato 2 semanas -> Mandrake 1 mes -> Ubuntu 1 semana -> Slackware 9, 10 creo? como un año o mas -> Debian GNU/Linux etch, lenny, sid a la fecha-> Estudio profundo de teoria de sistemas operativos->Otros Nucleos proximamente
En lo particular -como muchos- regalo Ubuntus, Me puse triste cuando Martin dejo de vender Ubuntus en el metro,me dio algo de pena poner la noticia de que Ubuntu podria dañar los discos duros de las laps, meda gusto ver a gente con su kubuntu, edubuntu, ubuntu estudio, etc. Ese era el fin ultimo de que se trabajara tanto haciendo las cosas fáciles, pero eso no quiere decir que conozcas -diria aarkerio- las tripas del sistema y el verdadero hacker las conoce, las modifica y las reescribe, por que las puede entender.

Un Ubuntu en un principio no es para desarrolladores, no tienen ni librerías de desarrollo ni compiladores, para hacerlo servidor tendrías que desinstalar mil y un madres, tu sabes "volarle" las X, agregarle ssh server, etc

El punto que defiendo es que de las distribuciones de linux hay un rey y una reyna -Slackware y Debian- que son de las que mas te permiten aprender mas de como funciona tu cacharro con el núcleo Linux. Es como en el ajedrez, el rey es el mas importante, donde aprenderás mas.

Pero la Reyna es la mas rompe madres de todas las otras piesas.

P.D: Creo que el caballo, mi pieza favorita, seria CentOS

Permalink: http://www.mononeurona.org/users/entry/vendaval/944


Login



Remember me:
vendaval
Alberto Rodriguez Sanchez Estudiante de Ingenieria en Computacion en la UAM-A, programo en C, C#, Python y Haskell. Uso Debian GNU/Linux, Mac-OS X, OpenSolaris, NetBSD y Win2. Pienso especializarme en computo cientifico y criptografia que son mis grandes pasiones.

Tambien pienso que la programacion computacional es un Arte y que un programa de computadora puede llegar a ser realmente bello si cumple con algunas caracteristicas, prefiero la Sintaxis Avanzada en los programas por que muestra un dominio del lenguaje y un buen grado de abstraccion.

NetBSD, C, Enlightenment y VI(M) son mis SO, Lenguaje de programación, manejador de ventanas y editor favoritos.

Practico Limalama y JKD (soy seguidor de la filosofía de Bruce Lee) y tambien escribo con cierta regularidad en este blog.

"Se como el agua, pero piensa como el fuego"
alchemy corn pop cryptography dark side education hacking humor ladies mathematics music my life nanoblogging no more triviality programming martial arts
Powered by:
Despabilando la MonoNeurona.org
Livechat

<-Nombre
m@t@ŧ@n wrote:
Eso de Programa bello es patisimo
1 week, 5 days ago

m@t@ŧ@n wrote:
un programa de computadora puede llegar a ser realmente bello si cumple con algunas caracteristicas,
1 week, 5 days ago

m@t@ŧ@n wrote:
Pana una pregunta ??? --- tu eres gay o q ?
1 week, 5 days ago

vendaval wrote:
Con una mentira suele irse muy lejos, pero sin esperanzas de volver
on 24/7/08

asarch wrote:
Simon. De preferencia ponle una nalga pa' que llame la atencion
on 25/6/08

vendaval wrote:
hola roberto, lo mejor seria poner lo que quieres comunicarnos como una noticia en portada
on 28/3/08

roberto wrote:
como envio un email a todos los miembros de mononeurona
on 26/3/08

vendaval wrote:
pienso que debria crear una version viva para ms necesidades
on 28/1/08

asarch wrote:
O tambien en: http://www.openbsd.org/ en la forma más pura que puedas encontrar en la red
on 26/1/08

¿Qué estuve haciendo?
regreso donde todo empezo...Estudio algebra lineal
1 day, 19 hours ago
hay documentacion aqui en la mononeurona.
1 day, 19 hours ago
es mas a la portada..
2 days, 23 hours ago
esta muy buena!!!!
2 days, 23 hours ago
Pobre aarkerio, nunca quisiste hacerlo compatible por simple desden.
3 days, 4 hours ago
Sintiendo algo de nostalgia,
3 days, 19 hours ago
Checando Austrumi.
4 days, 4 hours ago
ya salio fedora 10, pero mejor aun Revolucionemos Oaxaca cumple un año, felicidades
5 days, 18 hours ago
que chido que no fue nada, asarch
6 days, 10 hours ago
Noooooo!!!!!, asarch, responde, Toritoooooo!!!
6 days, 20 hours ago
Galerias
FirefoxjEdit.orgGimpOpenOffice.orgHacker
Top
Colectivo MonoNeurona.org © 2002-2008.