• Miércoles 8 de Mayo de 2024, 02:21

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 - chuidiang

Páginas: 1 2 [3] 4 5
51
Java / Re: Java Y Mysql
« en: Domingo 20 de Noviembre de 2005, 18:46 »
Hola:

En Ejemplo tonto de MySQL, tienes un tutorial que te cuenta por encima la instalación de mysql y luego se hace un programa tonto en java para que se enchufe a mysql.

Se bueno.

52
C/C++ / Re: C++ Y Conexion Ip
« en: Martes 18 de Octubre de 2005, 09:16 »
Hola:

En sockets tienes un tutorial en el que se explican los coneceptos de sockets. El código es para linux, pero puedes saltartelo si no es tu caso.

Como te han comentado, si trabajas en windows, debes buscar tutoriales de winsocket. Las funciones de C son las mismas que las de C para linux, aunque debes hacer previamente una llamada para cargar la libreria de winsock. En guia beej tienes otro tutorial que trata tanto linux como windows en paralelo.

Se bueno.

53
Java / Re: Java Y Procesadores De 64 Bits
« en: Lunes 19 de Septiembre de 2005, 10:28 »
Hola:

En teoría sí.

Java define sus propios tipos de datos. Un entero java ocupa siempre lo mismo independientemente de en qué plataforma corra (16, 32 o 64 bits).

Las diferencias las "absorve" la máquina virtual. Tendrás que instalar una máquina virtual de java para tu plataforma de 64 bits.

Se bueno.

54
Java / Re: Themes En Java
« en: Lunes 19 de Septiembre de 2005, 10:26 »
Hola:

La llamada exacta para cambiar el look and feel para que sea el del sistema operativo es esta:

Código: Text
  1. UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(  ));
  2.  

Se bueno.

55
Java / Re: Independencia De Netbeans
« en: Lunes 19 de Septiembre de 2005, 10:22 »
Hola:

No sé cual es el jar que dices. Puedes ir viendo jar en el directorio de instalacion de netbeans con el winzip o alguno similar, hasta reconocer alguna clase (el winzip no muestra los subdirectorios y por tanto, no permite ver los paquetes).

Para un applet tienes que subir el jar al servidor web, en el mismo directorio que tu applet. Luego en html tienes que poner algo como esto

<applet codebase="ClaseApplet" archive="fichero1.jar, fichero2.jar" ...

Te lo he puesto de memoria, quizás no sean así exactamente los nombres de los atributos.

Se bueno.

56
Java / Re: Duda
« en: Lunes 22 de Agosto de 2005, 10:47 »
Hola:

No estoy muy seguro, pero creo que un JComboBox hace lo que tu quieres, ordena los posibles datos a elegir por orden alfabetico y pulsando una letra te lleva al primero. Haz una prueba para ver si es verdad.

En caso afirmativo, puedes cambiar el editor de la celda para que sea un JComboBox y debería ser fácil hacer lo que quieres.

En cambiar el editor de una celda tienes un ejemplo de como se cambia el editor de un JTable.

Se bueno.

57
Java / Re: Proyecto Rmi
« en: Viernes 19 de Agosto de 2005, 17:23 »
Hola:

Por un lado tienes la comuniciación normal con socket. RMI es un nivel más alto (como lo era RPC en C de unix). ¿Cuando se justifica un RMI en vez de un socket?

Desde mi punto de vista hay una diferencia básica entre un socket y un RMI. Cuando un cliente pide algo, puede tener que quedarse bloqueado o no esperando la respuesta, sin hacer nada mas.

Con sockets, se envia un mensaje de peticion y podemos seguir haciendo cosas, hasta que la respuesta esté lista para ir a recogerla. Podríamos bloquearnos si lo deseamos.

Con RMI, el cliente pide algo y se queda bloqueado hasta que se termine la respuesta. No hay posibilidad de seguir haciendo cosas.

Como te comenta rutger, cualquier aplicación cliente/servidor, podrías hacerla con rmi. De todas formas, yo creo que debería pensar si es mejor usar rmi o solo un socket normal. Yo creo que la decisión debe tomarse de acuerdo a lo que te he comentado. De hecho, la aplicación de la pizarra es algo más bien "asincrono", tu pintas cuando quieres y el servidor te va repintando las cosas. RMI yo creo que está más justificado en algo más "sincrono".

Más que una aplicación de pizarra o chat, en la que deberías poder seguir pintando mientras se va refrescando con lo de los demás, deberías pensar en algún tipo de aplicación en la que te quedes bloqueado y no puedas hacer nada más hasta que la petición termine.

Se me ocurren aplicaciones del siguiente estilo:

Un acceso a base de datos remota. Cuando un cliente hace una consulta, normalmente no debe hacer nada hasta que obtenga los resultados. De hecho creo que ODBC usa internamente este mecanismo. Quizás esta apliación queda descartada por lo que comentas de un software de gestión.

Un acceso a algún hardware que esté en fisicamente en otro pc. El servidor da funciones de acceso a ese hardaware por medio de rmi, por ejemplo, para obtener su estado, hacerle un reset, etc. El hardware puede ser cualquier cosa, desde un disco duro situado en el servidor en el que se quiera escribir o leer ficheros hasta una tarjeta de audio de la que quieres ir recogiendo una grabación que se esté haciendo en ella.

Un ordenador que esté especialmente preparado para hacer calculos rapidos (una CPU más potente que la de los clientes) y ofrezca diversos algoritmos de calculo a sus clientes.

De todas formas, es más mi opinión que algo que haya leido por ahi....

Se bueno.

58
Java / Re: Editor De Java
« en: Jueves 18 de Agosto de 2005, 10:34 »
Hola:

Soy de la misma opinion de JuanK.

Un IDE avanzado te resuelve automaticamente muchos problemas. El problema es que no sabrás cómo se resuelven esos problemas sin el IDE.

Dicho de otra forma, el IDE compila y ejecuta tu programa java simplemente dándole a un botón. Es posible si aprendes con un IDE que luego no tengas ni idea de como compilar y ejecutar un programa java desde fuera del IDE.

Echa un ojo a Inicio con java a ver si te ayuda algo.

Se bueno.

59
Java / Re: Lanzar Un Thread Cada X Tiempo
« en: Jueves 18 de Agosto de 2005, 10:28 »
Hola:

La que propones es otra solucion valida. Depende de si el programa unicamente debe lanzar el hilo cada cierto tiempo o debe estar haciendo en otras cosas. Para el primer caso vale el sleep(), para el segundo caso mejor el Timer().

Se bueno.

60
C/C++ / Re: Error Con Los Punteros
« en: Jueves 18 de Agosto de 2005, 10:25 »
Hola:

Echa un ojo en Punteros a ver si te ayuda.

Se bueno.

61
Java / Re: Jtable
« en: Viernes 12 de Agosto de 2005, 09:32 »
Hola:

Una opción que no sé si te vale es la siguiente.

Crea un DefaultTableModel y usalo para guardar ahi tus datos.
Crea un JTable pasándole el DefaultTableModel en el constructor.

Ahora, te puedes "suscribir" a cambios en los datos del DefatultTableModel a través de su método addTableModelListener().
A partir de ese momento, con cualquier cambio que se produzca en la tabla, te avisarán a través del TableModelListener que pases al llamar al addTableModelListener(). Ahi podrás hacer lo que necesites.

Se bueno.

62
Java / Re: Lanzar Un Thread Cada X Tiempo
« en: Viernes 12 de Agosto de 2005, 09:22 »
Hola:

Algo parecido a lo que te dice JuanK lo hace la clase Timer. Esta clase la arrancas y te da un aviso al cabo de un cierto tiempo (una sola vez o cíclicamente, según decidas). Al Timer ya le pasas una clase TimerTask (similar a Runnable), por lo que el hilo posiblemente ya lo crea la misma clase Timer.

Tienes un ejemplo de Timer en

Ejemplo de timer

Se bueno.

63
C/C++ / Re: Array Bidimensional Como Parámetro
« en: Viernes 29 de Julio de 2005, 12:05 »
Hola:

arge es un array de cadenas con las variables de entorno, terminado en NULL. Ahi tienes cosas como

"PATH=C:\ ... "
"HOME=C:\Documents... "
etc, etc.

Para leerlas, debes hacer un bucle como este

int i=0;
while (arge!=NULL)
{
...
i++;
}

Se bueno.

64
Java / Re: Interpretar Comandos Linux A Traves De Java
« en: Lunes 4 de Octubre de 2004, 11:13 »
Hola de nuevo.

He probado esto

Código: Text
  1. class prueba
  2. {
  3.   public static void main (String[] args)
  4.   {
  5.     try {
  6.     Runtime.getRuntime().exec (&#34;cmd /c cls&#34;);
  7.     } catch (Exception e)
  8.     {
  9.       e.printStackTrace();
  10.     }
  11.   }
  12. }
  13.  

y no funciona (no borra la pantalla), pero tampoco da ningún error.

Sin embargo, desde ventana de ms-dos

cmd /c cls

funciona correctamente.

En general, para arrancar ejecutables no hay problema. El problema es el comando concreto cls. Todavía no he conseguido borrar la pantalla desde java.

También he probado a coger el getInputStream del Process que devuelve exec() y redirigirlo a la pantalla, pero obtengo un caracter extraño (ascii = 12), pero no se borra la pantalla.

Se bueno.

65
Java / Re: Interpretar Comandos Linux A Traves De Java
« en: Miércoles 29 de Septiembre de 2004, 09:02 »
Un detalle.

Por más que he probado, dir no funciona en dos, ni cls ni ningún comando "interno" (comandos que no tienen un .exe, sino que están dentro de command.com).

Runtime.getRuntime.exec("dir");  // da error

He hecho pruebas estilo "start cls", "cmd cls", etc y no he conseguido nada, ya que se me abren nuevas ventanas o sesiones nuevas, que se cierran inmediatamente y no se ven los resultados.

¿Hay alguna forma de hacerlo?

Sed buenos.

66
C/C++ / Re: Manejo De Archivos Binarios En Linux
« en: Miércoles 22 de Septiembre de 2004, 14:41 »
La información puede verse o no dependiendo de qué sea.
Las cadenas de texto si deben verse.
Los numeros no deberían verse.

fprintf() y fscanf() son para ficheros de texto. Si escribes con fprint(), saldrá como fichero de texto. Usa en su lugar funciones como fwrite() o write() y fread() o read() (dependiendo si abres el fichero con fopen() o open())

Se bueno.

67
C/C++ / Re: Clases Mutuamente Incluidas.. Como???
« en: Miércoles 22 de Septiembre de 2004, 14:36 »
Tienes que hacer algo como esto

En el A.h
Código: Text
  1.  
  2. class B;
  3.  
  4. class A
  5. {
  6.    public B *b;
  7. }
  8.  
  9.  

en el B.h
Código: Text
  1.  
  2. #include &#60;A.h&#62;
  3.  
  4. class B
  5. {
  6.    public A *a;
  7. }
  8.  
  9.  

De esta forma el include no es "recursivo". Si A.h incluye a B.h y este a su vez a A.h el compilador no termina nunca, y te da un error de que no puede abrir fichero (supongo que es lo que te pasa).

Luego, en los ficheros .cpp tienes que poner un include de mas

En A.cpp
Código: Text
  1.  
  2. #include &#60;B.h&#62; // Este incluye a su vez a A.h
  3. ...
  4.  
  5.  

En el B.cpp
Código: Text
  1.  
  2. #include &#60;B.h&#62; // que incluye a su vez a A.h
  3.  
  4.  

Se bueno.

68
Programación de Videojuegos / Re: Libreria Grafica
« en: Miércoles 22 de Septiembre de 2004, 14:31 »
Supongo que depende un poco de lo que quieras.
Una profesional supuestamente tiene optimizadas las funciones, consigue velocidades grandes de dibujado y refrescos, muchas opciones, etc, etc.
Si la haces tu y no quieres eternizarte, debe ser algo sencillo, quizás con no muchas opciones y posiblemente no esté muy optimizada.
Si quieres hacer super-video-juegos, manejo de fotos, refrescos muy rápidos en pantalla, etc, posiblemente debas usar una profesional.
Si quieres hacerte unos gráficos no demasiado exigentes, posiblemente merezca la pena hacértela.

69
Java / Re: Limpia Pantalla En Java
« en: Martes 21 de Septiembre de 2004, 16:22 »
Otra opción más son los códigos ansi. Si tienes instalados los condigos ansi para tu ventana de ms-dos, escribiendo unos caracteres especiales (un escape y un par de letras raras) puedes conseguir que se borre la pantalla. En Codigos ansi tienes una explicación de como instalarlos y qué caracteres tienes que escribir. Una vez hecho, queda tan sencillo como

System.out.println ("<esc>]2J");

El <esc> es el código ascii 27, en windows lo puedes conseguir manteniendo pulsado alt y 27 en el teclado numerico y soltar alt. Te saldrá algo como esto ←

Se bueno.

70
C/C++ / Re: Librerias C/c++ En Linux
« en: Jueves 16 de Septiembre de 2004, 17:20 »
Si quieres ver todas las funciones tienes varias posibilidades:

- Un buen libro/tutorial de C sobre unix.

- En /usr/include y subdirectorios por debajo tienes muchos de los ficheros .h del sistema. Ahi estan todas las funciones.

- El man esta guardado en algún sitio y tienes un fichero por cada ayuda. El listado de ficheros te da idea del nombre de las funciones. En mi maquina solaris, por ejemplo tengo /usr/man Aqui debajo hay subdirectorios man1, man2, etc que son las secciones de man. Dentro de la seccion sman3c tengo funciones de C. En linux tambien existen estos directorios, pero no te puedo decir donde estan. La ayuda de man
Código: Text
  1. &#036;man man
  2.  
quizás te de alguna pista

Se bueno.

71
Java / Re: Comonentes En Java
« en: Miércoles 15 de Septiembre de 2004, 11:05 »
Para que un componente sea realmente reutilizable, debes hacer que dependa de un numero pequeño de clases y que tenga una funcionalidad clara y solo una.

Dicho de otra forma, si haces una clase Cliente, esa clase puede contener los datos del cliente y algún método relacionado con algo algo del cliente, pero no debe saber escribirse en base de datos, en un fichero xml, pintarse en un gráfico y además imprimirse.

La mejor forma de hacer componentes reutilizables es dividir tu proyecto en mini-proyectos independientes. Por ejemplo, quieres hacer un juego de marcianos. Piensate (y haz) primero unas clases para mover iconos por pantalla, sin pensar para nada en marcianos. Hazte otro grupo de clases para captura de teclas al vuelo. Hazte otro grupo de clases para llevar una lista de jugadores y sus puntuaciones, etc, etc. Cuando tengas todo lo que se te haya ocurrido, hazte el programa de marcianos usando tus componentes.

La idea es sencilla, sin embargo por experiencia te aseguro que es muy dificil y requiere mucha practica aislarte de tu programa concreto (los marcianos) al hacer el componente reutilizable (la libreria de mover iconos). Al final, si no eres muy cuidadoso, acabas haciendo una libreria de mover iconos marcianos.

Se bueno.

72
Java / Re: Iniciarme En Java
« en: Jueves 9 de Septiembre de 2004, 10:58 »
Hola:

Echa un ojo en empezar con java, ahí tienes una pequeña explicación de qué necesitas descargarte de java para poder trabajar.

Se bueno.

73
C/C++ / Re: Señales Entre Procesos
« en: Martes 7 de Septiembre de 2004, 11:06 »
Buenas:

Los hilos se ejecutan por turnos. La CPU ejecuta un cacho de hilo cada vez (salvo que tengas varias CPU en paralelo, en la que es posible que un hilo distinto se ejecute realmente en cada CPU). Si solo tienes una CPU, sólo se puede ejecutar un hilo o un proceso a la vez.

Cuando matas un hilo (desde código), sólo se muere ese hilo, los demás siguen a lo suyo.

Si con un ps de linux matas el proceso, mueren todos los hilos. De hecho, con un ps no salen los hilos, sólo sale el proceso que contiene esos hilos.

En cuanto a la señal, te lo digo por intuición, puesto que no he probado nunca, pero supongo que recibe la señal el hilo que se esté ejecutando realmente en ese momento.

Tienes algo de hilos y procesos en Hilos y procesos

Se bueno.

74
C/C++ / Re: Matriz Dando Vueltas
« en: Martes 7 de Septiembre de 2004, 10:27 »
Pues a base de if. No te queda más remedio.

Imagina que encuentras el número en fila , columna .
Tienes que poner cosas de este estilo

if (fila > 0)
   escribir el numero de fila-1, columna
if (fila < NumeroMaximoFilas-1)
   escribir el numero en fila+1, columna

lo mismo para las columnas.

Se bueno.

75
C/C++ / Re: Señales Entre Procesos
« en: Lunes 6 de Septiembre de 2004, 11:19 »
En señales y alarmas tienes un pequeño tutorial de señales y alarmas, con código que puedes descargar.
Se bueno.

Páginas: 1 2 [3] 4 5