• Viernes 26 de Abril de 2024, 10:13

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - CodigoDavid

Páginas: [1]
1
Inteligencia Artificial / Re: I.a. Vs Evolución
« en: Miércoles 2 de Noviembre de 2005, 17:23 »
Cita de: "jaumegs"
Bueno, he leido los mensajes (he de reconocer que superficialmente) pero me han dado a entender algun pensamiento de ustedes, es que "desean" crear algo mas alla de lo inteligente, algo consciente. To queria dar mi opinion acerca de ese tema.

A mi me pareceria una atrocidad acia el ser crear una mente no solo capaz de razonar, sino una mente con consciencia. Yo creo en la utilidad de la IA, programas y maquinas capaces de aprender, de memorizar procesos rutinarios y tener capacidad dem"pensar" en canviar algun detalle para su optimización, incluso algo capaz de pensar dentro de un limite establecido.

En mi opinion, desde el momento que se da la libertad a un programa para aprender, para  pensar libremente, tener ideas estamos a muy poco de crear lo mas parecido a la "vida" (su parte mental). Crear algo asi, en mi opinion es la culminación del egoismo humano a causa de afan de superarse a uno mismo. Imaginaros "nacer" en un PC...

Si no se llega a ese extremo de crear "vida" pero si al de crear un ente pensante, sobretodo creado por humanos, que obtendriamos?  Una "inteligencia" con una capacidad de aprendizage muchisimo superior al de un humano; una memoria accesible al 100% ( sin oblido)  con una unica limitación, su capacidad; una velocidad de procesamiento no superior a la de los humanos, pero si controlada un 100%, es decir muchisimo mas aprobechada; ... y lo mas importante, o lo peor, los atributos de su creador: La estupidez humana, el egoismo, la avaricia, la sed interminable de saber, ...

Por mucho que alguien diga "Yo no cometere ese error" lo comete, nuestra mente tiene un limite, y ese es el limite que no nos permite crear algo diferente a nosotros.

Imaginate un ente asi, con acceso a internet, con todo el saber que le esta a su alcance, y con capacidad de elegir, no aleatoriamente, sino siguiendo el patron de su creador, elegir como un humano...

Cuantas guerras hemos iniciado? Cuantas hay hoy en dia, no solo la de iraq y las "famosas" sino todas las "batallitas" existentes sobretodo en africa. ? y no solo eso... que le hemos hecho a nuestro planeta? el planeta que nos "creo"?

Pues, ahora me diran "tonto", que miro mucha ciencia ficcion, pero yo les digo, que le impedira a ese ente encontrar un modo de ser "libre" (si no se lo hemos dado ya), encontrar el modo de reproducirse (que con toda la informacion sobre electronica, mecanica, programacion,... disponible en la red hay suficiente) y lo peor, que le impedira establecerse en nuesto territorio y sacarno igual que nosotros hemos hecho con toda clase de vida(acaso hay conejos por las ciudades?, madrigueras?, y a que cuando un perro se escapa lo llevan a la perrera?, y las ratas? por el simple motivo de que no son de agrado para nosotros las exterminamos...).

Yo lo he enfocado todo hacia un punto de vista catastrofista, no es necesario que ocurra todo esto, pero, si que crearemos una nueva forma de esclavitud: La IA, maquinas y/o programas capaces de sentir creadas por el unico afan de superacion humana, o creadas para ser sometidas a trabajos no deseados por los humanos. Cual creeis que era el pensamiento de la sociedad cuando existia la esclavitud (que aun existe)?

Pues eso, yo estoy deacuerdo en crear programas mas "inteligentes" pero no de dotarlos de consciencia.

Imaginese un dia despertarse, y descubrir que no es mas que un simple programa.

Bueno, saludos, espero que por culpa de este mensaje bno sientas desprecio hacia mi, solo miro de exponer otro punto de vista, el mio, y supongo que compartido por alguien.

SALUDOS.
 :comp:  :devil:  :hola:

2
Inteligencia Artificial / Re: I.a. Vs Evolución
« en: Jueves 11 de Agosto de 2005, 18:03 »
Cita de: "ErWillem"
Citar
para eso que dices de un traductor debes primero conocer muy bien los dos lenguajes y luego de eso debes conocer mucho sobre el tema de procesamiento del lenguje natural el cual es un tema de investigación abierto

Muchas gracias further tendré que investigar un poco más al respecto, por el momento de verdad no tengo mucho tiempo, si se fijan casi siempre me conecto de madrugada cuando tengo algo de tiempo, hasta escribo mal por el sueño casi no duermo en 2 semanas (pero aprovecho de escribir mientras hago otras cosas), cuando decida bien que hacer publicaré otra discución aparte ya que estamos desviando el tema, mi intención con este foro es para en un futuro diseñar una I.A. similar al humano basado en algunas ideas propias, conocimientos previos y opiniones de otros de manera que entre todos nos ayudemos un poco, y por supuesto un buen inicio tambien sería tratar de determinar si esa inteligencia podría originarse en realidad. Hay otras ideas que se me han ocurrido gracias a lo poco que me han respondido:

Si pensamos un poco en el ser humano y lo analizamos como una computadora, realmente podríamos decir que no es tan inteligente como parece.

Gran parte de lo que dices es cierto, pero si lo pienzas bien lo realmente sorprendente de un humano no es su capacidad de aprender.

El codigo genético del hombre es como el BIOS y los componentes principales de una tarjeta madre: le dicen que tan lento o tan rápido puede ser su CPU, cuanta memoria soporta, igual con el cache, disco duro, cuantos dispositivos puede tener y a que velocidad se puede transmitir informacion entre todos sus componentes. Aparte de eso el BIOS es el que indica los parametros para que un equipo pueda iniciar y reconocer dispositivos, es decir su programación básica para poder iniciar.

El humano visto de este punto de vista no es muy distinto, primero tenemos un BIOS que es nuestro codigo genetico, que nos dice que rang de colores podemos ver, como interpretar los sonidos que escuchemos, etc etc etc... Lo que cambia nuesta capacidad de aprendizaje entre un tema y otro es nuestra crianza: Algunos tenemos mayor capacidad para las matematicas, ficica, la programacion entre otros (que es mi caso, puedo guardar muchos programas) y otros tienen mayor capacidad para aprender materias como la historia, geografía, en fin materias teoricas (aprovechan su memoria para el almacenamiento). En si esto no sería la capacidad sino mas bien a nuestra programación: Todos somos criados de distinta manera, eso nos da nuestra sistema operativo, nos dice que hacer y como hacerlo.

Pero por supuesto no todos seguimos el camino que nos enseñan, es mas, en la vida real la mayoría buscamos escapar a lo que nuestros padres nos enseñan. esa tendencia considero que es parte de la evolución, buscamos un cambio de software para actualizarnos, pero no todos podemos cambiar por ejemplo un equipo pentium 1 y comprarnos un pentium 4 HT con aceleradora y pare de contar... pero la idea para todo es la misma evolucionar.

Por esto es que considero que sí se puede crear una inteligencia artificial igual o superior a nosotros mismos, quizas la union de varias personas que aporten nuevas ideas puedan crearla, lo dificil es lograr que esta sea capaz de reproducirse por si misma y que ademas este nuevo ser sea superior aunque sea por muy poco, como pasa en el humano.

¿Es dificil? Todos concordamos en eso, porque todos deceamos lograrlo rapidamente pero el ser humano no es asi.

Citar
las personas quieren que una máquina sea inteligente en segundos, siendo que esto tarda mucho en el ser humano, por ejemplo un niño recien nacido no sabe nada del mundo hasta despues de muchos años es cuando comienza a entender varias cosas y apartir de esto a aprender

Ese es el mayor problema de la inteligencia artificial, no que pueda reproducirse sino que el creador tenga la paciencia para esperar y darse cuenta si es o no inteligente.

Gracias y me despido hasta otra ocación.
"ni el hombre ni las maquinas nacen aprendidos"  


eso que has dicho, ese es el camino de la inteligencia, el otro dia me quede pensando, coño, ¿por que el ser humano no puede memorizar para siempre una cosa? y de repente me vino la respuesta, si hicieramos un programa inteligente, tambien se tendrian que ir "olvidando" cosas de vez en cuando por el limite de la capacidad, por lo que he llegado a la conclusion que al ser humano se le olvidan cosas por eso, debe de estar programado para llevar alguna especie de control, yo dentro de como mucho unos meses empezare a hacer unos programas "especiales", ya vereis, al final resultara mucho mas sencillo lo de crear inteligencia de lo que pueda parecer, ¿que paso con el codigo genetico del ser humano? que si, que decian que teniamos no se cuantos genes, y al final se llevaron la sorpresa de que tenemos pocos genes mas que una simple mosca, creo que se avecina una era diferente..........

3
ASM (Ensamblador) / Re: Programar La Gpu
« en: Sábado 9 de Julio de 2005, 19:02 »
Cita de: "Eternal Idol"
Cita de: "CodigoDavid"
Ok, lo que pasa es que a mi esto de utilizar librerias ya "prefabricadas" supongo que tambien tienen sus limitaciones, y entonces, si hay algo que quieres hacer pero no esta implementado en la API pero tampoco lo puedes programar directamente en el hardware por que el sistema no te deja que haces? no creo que hayga muchas limitaciones hoy en dia con la cantidad de cosas que tienen las API pero siempre hay excepciones..........................y mi mayor dificultad es que no se por donde empezar, supongo que primero seria estudiar la api de windows, y luego DirectX o OpenGL, pero, y mi talon de aquiles es el mega-ultra-super-bajo nivel de ingles que tengo :unsure: y claro, cuanto tiempo cuesta aprender un ingles decente? 1 año? pffff...... y tambien me encuentro por internet algunos tutoriales que alomejor pone la descripcion por ejemplo de la estructura WNDCLASSEX asi:

vale, ok, bien, pero para que sirve concretamente cbClsExtra? es que dice que es generalmente 0, vale, generalmente, pero por que no dice exactamente para que sirve? ami esta falta de informacion es lo que me "mata" en esto de la programacion................estos son en resumen con los problemas con los que me encuentro con el API de windows :alien:

Cuando quieras hacer algo muy especifico pensa en hacer un driver que se ejecute en modo kernel, por lo menos si queres que sea usado por mas de cinco personas en el mundo.

En cuanto a lo de la API lo lamento mucho pero tengo que decir que es tu culpa. Ese campo en particular esta explicado al detalle en la MSDN:

cbClsExtra
Specifies the number of extra bytes to allocate following the window-class structure. The system initializes the bytes to zero.


¿Que significa esto? Este campo especifica el numero (cantidad) de bytes extra para reservar justo despues de la estructura de la Ventana. El sistema INICIALIZA los bytes a cero, eso quiere decir que la memoria esta toda puesta a cero, cada uno de sus bytes.
La ayuda que tenes dice que generalmente se inicializa a cero porque la gente o no necesita guardar variables de la ventana o utiliza otros metodos.

Realmente yo me saco el sombrero ante la MSDN y el DDK, si tuviera que programar en Linux con el man mi vida seria mucho mas complicada  :smartass:
Sabes si la MSDN esta en español?

PD: Va ser que no.....

4
ASM (Ensamblador) / Re: Programar La Gpu
« en: Sábado 9 de Julio de 2005, 02:59 »
Cita de: "JuanK"
hola CodigoDavid

Solo ten presente que te han hablado con consejos muy practicos y queno han adquirido de la noche a la mañana...
muchos hemos sido los que hemos querido iniciar por la senda que pretendes ... para despues de un tiempo darnos cuenta que no ea la manera correcta de empezar...
sigue el consejo de los que ya han pasado por ahi...

cuando el rio suena...
piedras lleva.
Ok, lo que pasa es que a mi esto de utilizar librerias ya "prefabricadas" supongo que tambien tienen sus limitaciones, y entonces, si hay algo que quieres hacer pero no esta implementado en la API pero tampoco lo puedes programar directamente en el hardware por que el sistema no te deja que haces? no creo que hayga muchas limitaciones hoy en dia con la cantidad de cosas que tienen las API pero siempre hay excepciones..........................y mi mayor dificultad es que no se por donde empezar, supongo que primero seria estudiar la api de windows, y luego DirectX o OpenGL, pero, y mi talon de aquiles es el mega-ultra-super-bajo nivel de ingles que tengo :unsure: y claro, cuanto tiempo cuesta aprender un ingles decente? 1 año? pffff...... y tambien me encuentro por internet algunos tutoriales que alomejor pone la descripcion por ejemplo de la estructura WNDCLASSEX asi:


"
cbSize
El tamaño de la estructura
style
El estilo de la clase (CS *), no confundirse con el estilo de la ventana (WS *). Generalmente este campo puede ser puesto en cero.
lpfnWndProc
Puntero al Window Procedure de esta clase.
cbClsExtra
Cantidad extra de asignación de memoria para datos de la clase. Generalmente cero.
cbWndExtra
Cantidad extra de asignación de memoria por ventana de este tipo. Generalmente cero.
hInstance
Handle a la instancia de la aplicación (la que obtenemos en el primer parámetro de WinMain( ) )
hIcon
Handle al ícono grande (32x32), mostrado cuando el usuario presiona Alt+Tab.
hCursor
Handle al cursor que será mostrado sobre la ventana.
hbrBackground
Pincel para fijar el color de fondo de nuestra ventana.
lpszMenuName
Nombre del recurso Menú para usar con las ventanas de esta clase.
lpszClassName
Nombre para identificar la clase.
hIconSm
Handle al ícono pequeño (16x16), usado en la barra de tareas y en la esquina superior izquierda de la ventana.
"

vale, ok, bien, pero para que sirve concretamente cbClsExtra? es que dice que es generalmente 0, vale, generalmente, pero por que no dice exactamente para que sirve? ami esta falta de informacion es lo que me "mata" en esto de la programacion................estos son en resumen con los problemas con los que me encuentro con el API de windows :alien:

5
ASM (Ensamblador) / Re: Programar La Gpu
« en: Miércoles 6 de Julio de 2005, 23:05 »
Cita de: "furiouslogic"
Interesante charla y solo acotar algo sobre programacion de graficos bajo DOS. Me refiero a que no se debe confundir el programar graficos utilizando el driver VESA para DOS con programar graficos utilizando la especificacion VESA. En el primer caso requiere de un driver, un archivo aparte. En el segundo caso tenemos el uso de una interrupcion (metodo lento) o el acceso directo a direcciones de memoria que en modos VESA depende del fabricante.  Por este motivo programar un juego en modos VESA sin driver era un dolor de cabeza porque tenias que buscar mil especificaciones de fabricantes para determinar las direcciones para sus respectivos modelos de tarjeta y encima marcas.

  Algo mas, programar con acceso directo a memoria grafica no es para nada lento.  Por el contrario, es lo mas rapido que existe puesto que estamos escriiendo directamente en los chips de memoria de la tarjeta grafica ¿Existe algo mas rapido? Posiblemente si, la telepatia, pero hasta alli no ha llegado la programacion  :D


saludos y si que preguntas ah,


Furious Logic [aRC]
Pues claro que existe algo mas rapido, el agp y programar las operaciones graficas utilizando el PROPIO procesador de la targeta grafica..................que es lo que yo quiero hacer.........

6
C/C++ / Re: Dimensiones En Tiempo De Ejecucion¿?
« en: Martes 5 de Julio de 2005, 16:01 »
Cita de: "Eternal Idol"
¿Como harias para asignar uno de estos arrays de varias dimensiones dinamicamente?  :whistling:
 :alien:  :alien:  :alien: Joder, como quieres que lo sepa si es lo que estoy preguntando yo?(si he entendido bien tu pregunta claro........), haver, yo se que por ejemplo, para crear una matriz de 2 dimensiones dinamicamente, se haria asi:


int main()
{
   int **matriz2D = 0;

   *matriz2D = new int[2];
   matriz2D[0] = new int[1024];
   matriz2D[1] = new int[768];
}

y yo lo que quiero es poder asignarle memoria a la matriz que se le pase como argumento a la funcion, pero no me quiero limitar a funciones que ya tengan establecido el numero de dimensiones, esto es, que solo puedan reservar memoria para matrizes de 2, 3 o 4 dimensiones, yo lo que quiero es que le puedan reservar memoria a cualquier matriz, tengan 1 o tengan 3 o tengan 40 dimensiones........supongo que ahora me e explicado bien........

7
C/C++ / Re: Dimensiones En Tiempo De Ejecucion¿?
« en: Lunes 4 de Julio de 2005, 19:22 »
Cita de: "Eternal Idol"
¿Seguro que te hace falta? No estaria mal que dieras un ejemplo de uso para verlo mas claro.

Código: Text
  1.  
  2. void AsignarMemoria(int *&destino, int numElementos)
  3. {
  4.   destino = new int [numElementos];
  5. }
  6.  
  7.  
Hombre, pues claro que seria util, por que uno no se tendria que limitar a hacer funciones como:


CreaMatriz2D
CreaMatriz3D
CreaMatriz4D
..........................................


lo que yo quiero es poder elegir al momento de llamar a la funcion el numero de dimensiones de la matriz, vamos, que no me conformo con solo poder elegir el numero de elementos, y por eso pregunto si solo se puede hacer de una manera "cochina", esto es, simulando la matriz con un unico vector de una dimension y metiendo ahy todos los elementos y luego simularlo todo por medio de aritmetica......., en definitiva, que soy un inconformista y quiero una funcion parecida a una cosa asin:


LeeMatriz(10, 40, 69, 33...);


como se ve, la funcion tendria un numero indefinido de argumentos(como el prinft), entonces, para que lo entendais, el primer argumento de la funcion de arriba, el 10, significa que habria 10 elementos de 40*69*33 cada uno, el 40 es la otra dimension, el 69 la otra etc etc etc etc, esto para mi hacerlo es facil, pero el problema, como hos digo, es como le digo internamente a la funcion el numero de dimensiones, y por eso creo que solo se puede hacer de manera "cochina", si, vale, no me conformo con poca cosa, lo reconozco, pero me gusta hacer funciones muy potentes...........

8
C/C++ / Dimensiones En Tiempo De Ejecucion¿?
« en: Lunes 4 de Julio de 2005, 08:14 »
No hay alguna manera de decidir el numero de dimensiones de una matriz dinamica en tiempo de ejecucion? esto es, tranquilamente se puede hacer esto en C++:

void AsignarMemoria(int *&destino, int numElementos)
{
   destino = new[numElementos];
}


pero, claro, hay alguna manera de averiguar el numero de dimensiones dentro de una funcion? el numero de elementos no, reitero que me refiero a las DIMENSIONES, esto es, la diferente cantidad de corchetes, pero no solo eso, ¿como le asigno las dimensiones si tan solo son corchetes?(creo que no se puede)
y entonces, y por eso he pedido que entre JuanK, ¿la unica alternativa es hacerlo del modo "cochino"?(JuanK lo entendera, lo de "cochino".....)¿?help meeeeeee!!!!!!!!!

9
Inteligencia Artificial / Re: La Eterna Discusión
« en: Domingo 3 de Julio de 2005, 18:11 »
EL TIEMPO ES LA CLAVE.............. :devil:

10
Inteligencia Artificial / Re: La Eterna Discusión
« en: Domingo 3 de Julio de 2005, 18:08 »
Pues yo creo que no falta tanto para crear una inteligencia artificial "humana", si acaso por temas de limitacion de hardware, y es que voy a exponer unas cuantas cosas:


Cuando un ser humano nace, ¿nace ya con experiencia e inteligencia de una persona adulta? NO.......


Que creeis que pasaria, si al nacer ese ser humano, los padres y nadie le hablaran o le enseñaran cosas? es decir, que estuviera encerrado en algun sitio, sin oir nada, ni ver nada ¿que pasaria? meteria la mano en el fuego de que por mucho tiempo que pasara, seguiria igual de "tonto" que cuando nacio(pero probablemente moriria de hambre en poco tiempo......)


Pero ahora imaginad que si que le enseñan(lo normal claro), ve cosas que cambian, oye cosas, y este asocia el sonido con lo que ve, entonces, probablemente este con el tiempo adquiera experiencia, y lo mas importante y que quede bien claro, todo lo que haga en el futuro estara sentado en las bases que adquiera previamente.....


Si ha pasado ya un tiempo y este ser humano tiene algo de experiencia y le dice su madre, "el fuego no se toca, te haria daño", una de dos, o le lleva la contraria y lo toca(por gilipollas  :rolleyes: ) o le hace caso y no lo toca, pero no solo eso, si en un futuro alguien le dice "el fuego quema", "pensara y recordara" que la palabra fuego ya la habia oido, entonces, pensemos ahora un poco los programadores por que voy a exponer algo importante:


ese ser humano sabra lo que es el fuego, por que ya se lo habian enseñado, pero, "se preguntara" que que cojones es "quema"?, y entonces, y al igual que los humanos hacemos, preguntara que quiere decir quema a quien se lo haya dicho, entonces probablemente el otro le dira que es algo que hace "daño", y........bingo, ese ser humano se acordara de la palabra "daño" que tambien estaba asociada con "fuego" y entonces ya tendra la experiencia de pensar que "quemarse" es hacerse daño con el fuego......


y lo que creo mas importante y que a nosotros mismos, los humanos se nos esta olvidando, es IMPOSIBLE crear una inteligencia artificial que de buen principio sea como queramos, si pensais bien, todo ser vivo adquiere experiencia con el tiempo, esa creo que es la clave de la inteligencia, el TIEMPO y la EVOLUCION...............

señores, ahy queda el tema.....

11
ASM (Ensamblador) / Re: Programar La Gpu
« en: Viernes 1 de Julio de 2005, 23:55 »
Cita de: "bob esponja"
lo de bienvenido a la programacion no es poque seas nuevo sino porque tenes que tomar las cosas con calma y hacer avances chicos

obvio que a todos nos gustaria escribir todo lo que vos decis pero ni siquiera se me ocurre empezar a escribir una linea de eso porque se que si lo empiezo ahora no va a funcionar  

lo de las cosas "simples" que hice no es sarcasmo es en serio nunca logre programar algo totalmente completo sino que hice cosas incompletas con el fin de aprender en el proceso despues de varios fallos y con un proceso "iterativo e incremental" (paresco mis profesores) se puede lograr algo pero la regla general es que si apuntas a algo muy alto de entrada nunca lo terminas....

espero ver avances tuyos por aca

si ya hiciste algo estaria bueno que lo postees

no es de amargo es que me ha pasado de encarar un proyecto muy grande y no llegar a nada y te da bronca
por curiosidad, cual era ese proyecto que no pudiste terminar?(ya se lo que quieres decir con lo de que da bronca, me ha pasado alguna vez......), por cierto, y como he dicho, lo que pregunte en mi post es para el futuro........., ahora de momento estoy creando en C++ unas clases y funciones que tengan bastante "robustez"(esto es, bien diseñado)para poder despues hacer cosas de mas alto nivel de forma mucho mas facil, esta clase que estoy haciendo es del tema de la memoria, mas que nada se encarga de registrar, al momento de asignar memoria a un puntero, la direccion de este y tambien su tamaño en bytes, empeze a hacer esto por que un dia me encontre con un problema, el operador sizeof te dice el numero de elementos que tiene una matriz estatica pero no una dinamica, esto es, para los punteros siempre da el mismo valor, tenga la matriz 10 elementos o 300 o 50000 que siempre dara lo mismo(da siempre el tamaño de palabra del procesador), y entonces, si programas en c++ sabras que este no tiene algo similar a la funcion realloc como el C, y por lo que me han dicho, aun que pueda utilizar realloc en C++, se ve que es mejor no mezclar el tema de la memoria en como lo utiliza C con C++, y entonces, claro, vas todo contento y piensas, pues hago una funcion que internamente copie temporalmente el contenido del puntero al que se le tiene que agrandar la capacidad, libero la memoria de este, vuelvo a asignarle la memoria necesaria y le copio otra vez el contenido que tuviera, peroooooo............vuelves dos pasos anteriores y te fijas que...........!!!ostias, y como se el numero de elementos que tiene el puntero?!!!
si es con una cadena vale, por que tiene el delimitador del caracter \0 y a partir de ahy puedes saber el numero de elementos, pero no es posible con una matriz numerica, por que el 0 es tambien un valor "normal y corriente", entonces no puedes saber su longitud, y bueno, pues se me ocurrio hacer una funcion que asigna memoria y esta internamente registra la direccion de memoria del puntero pasado como parametro y la longitud asignada(tambien pasada como argumento), entonces, la funcion de reasignar memoria solo se tiene que consultar lo que registro la funcion de asignar memoria para saber el numero de elementos de ese puntero, y encima no puede haber problemas de direcciones de memoria por que de direccion de memoria solo hay una de cada, osea, de direcciones de memoria "34343" solo hay una, no existen dos direcciones de memoria "34343", y entonces ya.........................es solo cuestion de construir unas bases solidas, y creo que la memoria es uno de los temas principales, cuando tenga cosas echas ya las posteare :comp:  :hola:

12
ASM (Ensamblador) / Re: Programar La Gpu
« en: Miércoles 29 de Junio de 2005, 22:44 »
Por cierto, que nadie pregunte por que hace 3 años que no salgo a la calle, no lo dire, es muy personal, espero que a nadie le moleste que no lo diga............. :scream:

13
ASM (Ensamblador) / Re: Programar La Gpu
« en: Miércoles 29 de Junio de 2005, 22:39 »
Cita de: "JuanK"
Citar
hmmhmhmhmhhhmmmm ¿bienvenido a la programacion? alien.gif empeze con el lenguaje C a los 14 años y tengo 18, llevo 4 años............................. hola.gif
mmm...

No lo tomes a mal pero con esas preguntas y pretenciones tan grandes parece que no has tocado mucho los temas fuertes de programacion en c... conocer bien un lenguaje no implica ya ser todo un conocedor de la programacion.
hombre, pues contando que con un lenguaje como C no viene con sistemas multimedia incluidos, como por ejemplo graficos, sonido etc etc etc, lo mas fuerte que hay del lenguaje C creo que es(y creo que no me equivoco), y supongo que es lo que pretendias decir, son las estructuras dinamicas de datos, las listas enlazadas, dobles, circulares, arboles binarios, arboles binarios perfectamente equilibrados, y por supuesto, los punteros...................que es realmente una parte potente del C, pero tengo que decir que ya no estoy con el C, he pasado al C++, ya se utilizar hasta la herencia, la herencia multiple, la herencia virtual y todo eso, pero es que, ¿he dicho yo, en algun momento, explicitamente, que quiera hacer lo que he dicho ahora mismo?, por que lo que preguntaba era para un futuro no para ahora precisamente, logicamente antes tendre que hacer cosas mas simples, como alguien ha dicho por ahy, pero, todo eso lo preguntaba por que realmente me da rabia este secretismo del hardware y no poder programarlo(excepto semi-dioses como Micr$s$ft), y lo preguntaba mas que nada por que ahora me tienen que llegar unos libros de programacion, entre ellos un tocho de libro sobre ensamblador y por eso lo preguntaba, se que el ensamblador es "chungo", pero yo me conozco, y pienso conseguir dominarlo..............aver, es que puede parezer que me hago el listo, pero es que seguramente hay una gran "diferencia" entre vosotros y yo, y es que probablemente vosotros trabajais, haceis otras cosas etc etc etc, pero yo, y aunque hos parezca un poco fuerte leerlo, haze 3 años que no salgo de casa(excepto contadas excepciones....), y todo este tiempo me he estado peleando con el lenguaje C, actualmente con el C++, tranquilamente, y como he echo aveces, me he estado 3 dias seguidos sin dormir para aprender sobre algun "rincon" mas sobre estos dos lenguajes, os podreis imaginar la cantidad de cafeina que tomo y la bonita coleccion de cajas de aspirinas que debo de tener :D , y si, hace 3 años que no veo a ningun colega/amigo, solo a familiares, reconozco que soy muy obsesivo con esto de la programacion, pero esto de la obsesion creo que es lo que al fin y al cabo me ha echo conseguir estudiar estos dos "bonitos" lenguajes de programacion, en fin.....................

14
ASM (Ensamblador) / Re: Programar La Gpu
« en: Miércoles 29 de Junio de 2005, 21:33 »
Cita de: "bob esponja"
primero que todo buenas segundo que todo voy a pedir que te tranquilices ( voy a ser claro para que no te choques contra una pared )

unas preguntas:
1) en que lenguajes sabes programar?
2) a que nivel sabes programar?
3) ya programaste algo que valga la pena?

digo esto porque te noto muy exaltado y por algunas preguntas que haces denotas muy poco conocimiento. tranquilizate y acostumbrate a varias cosas:
1) todo lo importante esta en ingles ( ergo aprende ingles )
2) siempre se empieza de lo simple ( ergo aunque no te guste, vas a tener que empezar con el modo 320x200x256 )
3) las emprezas de tarjetas graficas no tienen ganas de liberar las espeificaciones a personas o grupos de personas que no le respondan con un incremento de sus ingresos de al menos varios millones asi que les dan los drivers a microsoft ( por los juegos ) y a contadas excepciones
4) se nota que todavia no leiste un datasheet ( especificacion de hardware ) porque hasta la mas simple de 4 hojas es muy dificil de entender y transformar en algo que ande
y un largo etc

otra cuestion: ya programaste algo en vesa para empezar a hablar de
"me refiero a graficos 3D en modo como minimo 800x600 con 16 millones de colores y utilizando miles de poligonos y texturas, iluminacion en tiempo real..............,"
hiciste un poligono en 3d?
porque yo estoy hace mucho en esto ( un poco dejado hace un tiempo ) y no es facil...

otra cosa en mi casa tengo un linux andando con el driver vesa framebuffer a 1024x768x24 bits de profundidas en un Kde totalmente sobrecargado y no tiene ningun problema de rendimiento como para que necesite configurar la placa

hay dos caminos:
1) si queres "graficos 3D en modo como minimo 800x600 con 16 millones de colores y utilizando miles de poligonos y texturas, iluminacion en tiempo real..............,"
aprende opengl o directx que ellos ya se rompieron haciendo lo que vos estas tratando de empezar
2) si queres aprender sobre graficos y modos de video empeza con 320x200x256 y segui con vesa dentro de mucho tiempo cuando lo domines volve a preguntar sobre placas de video etc

simple yo empece por lo bajito ( al reves que vos ) y ya he escrito simples juegos simples manejadores de vesa un simple sistema operativo y dos simples compiladores, por el camino que vas vos vas a estar años sin poder terminar de escribir algo que te haga sentir orgulloso.

empeza por lo simple y bienvenido a la programacion

enjoy...
hmmhmhmhmhhhmmmm ¿bienvenido a la programacion? :alien:  empeze con el lenguaje C a los 14 años y tengo 18, llevo 4 años............................. :hola:

15
ASM (Ensamblador) / Re: Programar La Gpu
« en: Martes 28 de Junio de 2005, 10:30 »
Cita de: "Eternal Idol"
En cuanto a DirectX yo por lo menos conozco un libro en Español que es bastante simple, programacion de videojuegos o algo asi se llama pero realmente el Ingles en el mundo la programacion es imprescindible, no hace falta ser Shakespeare pero si entender el Ingles tecnico.
No, si el ingles tecnico lo entiendo, lo entiendo, pero es que alomejor te encuentras en la api con una funcion que se llama "InitDC" o cosas por el estilo y dices, vale, Init significa Iniciar, pero, y que C****** significa "DC"? pues que no lo sabes si alguien no te lo explica(que DC en la jerga windows significa Dispositive Context o algo asi)

16
ASM (Ensamblador) / Re: Programar La Gpu
« en: Martes 28 de Junio de 2005, 01:42 »
Cita de: "Amilius"
Cita de: CodigoDavid,27/06/2005, 10:26 PM
Cita de: Amilius,27/06/2005, 11:14 PM

OpenGL? pero si se usa dentro de la API de Windows.........., y pregunto, entonces que utilidad tiene VESA? mejor dicho, entonces uno tiene que joderse? por que, yo es que a este tema de programar directamente el hardware le veo mucho secretismo por parte de las empresas si se me permite decirlo................................pero es que entonces ya estamos, los que programan este tipo de cosas¿donde lo aprenden?¿es que yo no puedo aprenderlo tambien? ¿o es que son semi-dioses? creo yo que son programadores humanos normales y corrientes, aver, si por ejemplo ahora a mi una empresa me pide que le haga un driver en ensamblador para su super-ultimo-chachi-guay modelo de targeta 3D, que conocimientos necesito, por que si existen estos trabajos digo yo que existe documentacion sobre el tema, por que si no estoy en otra dimension.........
VESA esta igual que los modos "estándar" como el 640x480x4bits, o el 320x200x8bits o el "xlat"= soportados pero deprecados.

Claro que puedes hacer los drivers, y si los haces gratis para cualquiera de esas empresas seguro estarán felices. Seguramente te entregarían un manual gigante con todo lo que puedes hacer y lo que no debes hacer para manejar el modelo "y" de la tarjeta "x" en la empresa "z". Y no es que sea mucho secretismo, es que eso de programar el driver se supone que lo tienen que hacer ellos por que no es algo estándar, además el agp tiene sus días contados por que vienen nuevas tecnologías para reemplazarlo.
en definitiva, que si quiero graficos como por ejemplo 1024x768x32bits con la misma velocidad de windows, la unica opcion es la API de Windows/opengl/direct3d no? pues vaya m***** por que abres una de esas cabeceras y uno no se entera de nada.................pero es que encima los que no sabemos ingles que?(por que yo no tengo ni #### idea)de la api de windows si hay libros en castellano pero.............................................y de directX? por que todavia no he visto ningun libro de DirectX en castellano, ademas de que es imposible cojer la cabezera de DirectX e ir probando funciones para cojer experiencia por que simplemente esas cabezeras son un lio(todas desordenadas, sin tabulaciones ni espacios, vamos que todo esta amontonado), por mi que los programadores de esas api no saben lo que es la legibilidad.............................

17
ASM (Ensamblador) / Re: Programar La Gpu
« en: Martes 28 de Junio de 2005, 01:32 »
Cita de: "Amilius"
Cita de: CodigoDavid,27/06/2005, 10:26 PM
Cita de: Amilius,27/06/2005, 11:14 PM

OpenGL? pero si se usa dentro de la API de Windows.........., y pregunto, entonces que utilidad tiene VESA? mejor dicho, entonces uno tiene que joderse? por que, yo es que a este tema de programar directamente el hardware le veo mucho secretismo por parte de las empresas si se me permite decirlo................................pero es que entonces ya estamos, los que programan este tipo de cosas¿donde lo aprenden?¿es que yo no puedo aprenderlo tambien? ¿o es que son semi-dioses? creo yo que son programadores humanos normales y corrientes, aver, si por ejemplo ahora a mi una empresa me pide que le haga un driver en ensamblador para su super-ultimo-chachi-guay modelo de targeta 3D, que conocimientos necesito, por que si existen estos trabajos digo yo que existe documentacion sobre el tema, por que si no estoy en otra dimension.........
VESA esta igual que los modos "estándar" como el 640x480x4bits, o el 320x200x8bits o el "xlat"= soportados pero deprecados.

Claro que puedes hacer los drivers, y si los haces gratis para cualquiera de esas empresas seguro estarán felices. Seguramente te entregarían un manual gigante con todo lo que puedes hacer y lo que no debes hacer para manejar el modelo "y" de la tarjeta "x" en la empresa "z". Y no es que sea mucho secretismo, es que eso de programar el driver se supone que lo tienen que hacer ellos por que no es algo estándar, además el agp tiene sus días contados por que vienen nuevas tecnologías para reemplazarlo.
solo 4 o 8 bits? pero si tengo tutoriales de VESA en modo 1024x768 con 32 bits de profundidad de color(16 millones de colores), y una curiosidad que siempre he tenido, que es eso de "deprecado" o "deprecated"? :alien:  :alien:  :alien:

18
ASM (Ensamblador) / Re: Programar La Gpu
« en: Martes 28 de Junio de 2005, 00:26 »
Cita de: "Amilius"
Cita de: "CodigoDavid"
es posible con VESA hacer graficos en 3D(a partir de las primitivas 2D..........) con un buen rendimiento? me refiero a graficos 3D en modo como minimo 800x600 con 16 millones de colores y utilizando miles de poligonos y texturas, iluminacion en tiempo real..............
Ni en sueños,  ;)
VESA fue desarrollado antes que las tarjetas aceleradoras de gráficos 3d coparan el mercado, en esos tiempos del VESA poder ver en tu pantalla 1024x768 pixeles a 24 bits de color era mucha cosa, un sueño. Si quieres ver como funcionaría tu programa con vesa inicia el windows XP en modo a prueba de fallos y me cuentas como va la velocidad. Si quieres un estándar para 3d tienes al Opengl.  ;)
OpenGL? pero si se usa dentro de la API de Windows.........., y pregunto, entonces que utilidad tiene VESA? mejor dicho, entonces uno tiene que joderse? por que, yo es que a este tema de programar directamente el hardware le veo mucho secretismo por parte de las empresas si se me permite decirlo................................pero es que entonces ya estamos, los que programan este tipo de cosas¿donde lo aprenden?¿es que yo no puedo aprenderlo tambien? ¿o es que son semi-dioses? creo yo que son programadores humanos normales y corrientes, aver, si por ejemplo ahora a mi una empresa me pide que le haga un driver en ensamblador para su super-ultimo-chachi-guay modelo de targeta 3D, que conocimientos necesito, por que si existen estos trabajos digo yo que existe documentacion sobre el tema, por que si no estoy en otra dimension.........

19
ASM (Ensamblador) / Re: Programar La Gpu
« en: Lunes 27 de Junio de 2005, 23:34 »
Cita de: "Eternal Idol"
En su amplia mayoria Windows (siempre hablo de NT) esta hecho en C, hay bastante rutinas de asm en la inicializacion y todo lo que sea dependiente de la motherboard en el HAL.

Intenta conseguir la documentacion de la placa si es que existe, intenta conseguir un driver para Linux si es que existe y siempre queda la opcion de hacer ingenieria reversa sobre el driver para Windows.
bueno, ya se por donde van los tiros.............vamos, que o los de nvidia hacen un driver para mi(cosa que dudo......) o lo tengo mas bien jodido................(esto no lo dudo......) :lightsabre: , entonces, tendria que fliparme un poco menos e ir a por la VESA....., mi pregunta es entonces, hay mucha diferencia de rendimiento entre usar VESA/acceder directamente al hardware?  es posible con VESA hacer graficos en 3D(a partir de las primitivas 2D..........) con un buen rendimiento? me refiero a graficos 3D en modo como minimo 800x600 con 16 millones de colores y utilizando miles de poligonos y texturas, iluminacion en tiempo real.............., y otra pregunta es, existe tambien un estandar para el sonido?, ohy algo de vesa audio, pero no se........, y mi pregunta definitiva, en ASM, como utilizo un CD-ROM/DVD-ROM ? se utiliza como cualquier otra unidad? pero, por ejemplo, si pongo un video en DVD, como se lee? me imagino que el DVD, en si mismo, es un estandar, por lo que, ¿alguien sabe de alguna pagina con documentacion sobre la estructura de ficheros/informacion de los ficheros de un video DVD? gracias

20
ASM (Ensamblador) / Re: Programar La Gpu
« en: Lunes 27 de Junio de 2005, 20:54 »
Cita de: "Eternal Idol"
En cuanto a la segunda pregunta segun tengo entendido Windows no realiza el acceso directo a la AGP sino que los drivers, en este caso los de nvidia, son los encargados de este trabajo.
Si, pero, dejando de lado como lo haga windows, una aceleradora 3D es una maquina electronica mas como cualquier otra, y sabiendo esto, supongo que tambien tiene sus direcciones de memoria, IRQS etc etc etc ¿no?................por que, esos drivers, ¿como se programan a bajo nivel? no quiero dependencia de windows, quiero programar yo la targeta......... :comp: , y bueno, los que en su dia programaron el windows supongo que tendrian que hacerlo en ASM, logicamente, por lo que debe de haber alguna manera, o es que yo soy marciano y esos programadores venian con un cerebro de serie que ya sabia programar lo que digo? :alien: , logicamente no.................

21
ASM (Ensamblador) / Programar La Gpu
« en: Lunes 27 de Junio de 2005, 15:53 »
Mis dudas son unas "cuantas", y esque, estoy en estas:


(1)Quiero programar directamente el hardware, graficos, teclado, raton, sonido.

{
Estamos en que para hacer esto, de buen principio ni pensarlo de hacerlo bajo, por ejemplo WinXP por que simplemente protege la memoria asignandole una zona virtual de memoria a cada proceso y analizandola a su voluntad para que el proceso no acceda a zonas de memoria de otro proceso(problema numero 1), me direis muy bien, utiliza la API de windows y ya esta, pero yo digo, no esta!! por que no pienso utilizar esa API........no de momento, la solucion mas facil seria programar en entorno MS-DOS, pero tenemos el problema de la barrera de los 640 Kbytes, podria utilizar directamente el hardware y tal con las interrupciones, pero........... y si mi programa que haga ocupa mas de 640 Kbytes en memoria que?, ahy viene una duda/pregunta, aunque todos sabemos que MS-DOS tiene la barrera de los 640 Kbytes, y aun teniendo la memoria extendida su uso es muy limitado, como al fin y al cabo MS-DOS es un programa mas echo en ensamblador, hay alguna manera de poder utilizar toda la memoria disponible en el PC mediante algunas rutinas en ensamblador y tambien extender los 16 bits a 32 bits, superando asi las barreras, es decir, si yo tengo por ejemplo 512MB de memoria RAM fisica en el ordenador, pues poder utilizarlos todos y no 640KB solamente, igualmente el tema de la cantidad de bits, osea que aunque los programas de MS-DOS sean de 16 bits, de alguna manera yo puedo hacer programas corriendo en 32 bits aunque MS-DOS no lo sea mediante el apoyo de algunas rutinas de ensamblador? no pido que me digais como se hace, simplemente pido que alguien me diga si se puede hacer lo que yo he dicho o no, lo demas ya es trabajo mio.........,
}



(2)Programar graficos, pero nada de VGA ni SVGA, sino una GPU(si si, una aceleradora en el AGP)
{
aqui viene mi mayor duda, y es que por internet veo montones de tutoriales del modo 13h, que si VGA, que si SVGA, VESA 1.0 y 2.0, tenemos que:

VGA: 256 colores, caca de la vaca, no me sirve, no me conformo.........
SVGA: otro tanto de lo mismo.....
ESTANDAR VESA: 16 millones de colores y todo lo que tu quieras, pero tampoco me conformo por su lentitud

explicacion de por que no me sirve lo del vesa:

por la profundidad de color si me serviria, pero, imaginaros que tengo que hacer un sistema operativo como el windows, con 32 bits de color, esto es, 16 millones de colores, pero como imaginareis, ni de coña tendra la velocidad que tienen los graficos del windows, por que aunque alguien no lo sepa y aunque lo parezca, windows NO esta echo con vesa, ese sistema accede directamente al hardware, y en ordenadores modernos ya no estamos hablando de VGA ni SVGA si no de GPU o "Graphics Accelerated Unit", o lo que es lo mismo, targetas aceleradoras 3D de alto rendimiento, con procesador propio, algunas que llegan a tener 256MB de memoria de video GDDR3(la mia, una 6800GT........), y ahi viene el problema, veo un monton de paginas de los modos anteriores, pero todavia no he encontrado ninguna que hable de como acceder directamente a ese tipo de hardware, y mis preguntas son, ¿se accede directamente a la aceleradora 3D o tan solo al bus AGP?¿que interrupcion es la encargada del bus AGP o de la targeta aceleradora?¿cuales son las direcciones de memoria?¿que registros tiene el procesador(GPU) propio de la targeta aceleradora?¿alguien sabe el nombre de estos registros? pues eso, alguien sabe "algo" sobre el tema? por que, existir tiene que existir algo por c******, por que los sistemas operativos que existen como windows, no salen de la parrilla como por arte de magia..............................................e inevitablemente deben usar alguna "cosa" para realizar sus cometidos, "algo" que si ellos pueden utilizar programandolo en ensamblador y ese "algo" como por ejemplo una Nvidia GeForce 6800GT 256MB GDDR3 esta en mi ordenador, pues por c****** debo de poder programarlo yo de alguna manera utilizando ensamblador, ¿existe algun libro al respecto a poder ser en castellano?, recuerdo, que nada de APIS ni DirectX ni OpenGL ni nada por el estilo, empezando desde 0(programacion del hardware pura y dura.....)MUCHAS GRACIAS

Páginas: [1]