Entrar
¿Nuevo usuario? Inscribirme
smalltalking · Un lugar para el estudio y desarrollo de Ambientes de Objetos virtuales.
? ¿Ya estás suscrito? Entra a Yahoo!

Consejos

¿Sabías que...?
Podés hacer búsquedas de antiguos mensajes del grupo.

Mensajes

  Mensajes Ayuda
Avanzado
Mensajes 15885 - 15914 de 17190   Más reciente  |  < Más reciente  |  Más antiguo >  |  Más antiguo
Mensajes: Mostrar resúmenes de los mensajes   (Agrupar por tema) Clasificar por fecha v  
#15914 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mié, 11 de Jul, 2007 2:10 pm
Asunto: Que hay en un "Comment"....
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola,
Hace un tiempo hablamos sobre los "comments" en smalltalk.

Hoy, por casualidad, visité a una página en la que hay algo
  escrito con forma de artículo (con comentarios de lectores)
  en el que se propone abordar el tema desde el título
  "What´s in a Comment?".
Desde el título, y el lugar (es una página hosteada en
  "The Weekly Squeak") parece tratarse de lo que
  en Smalltalk se usa (define? podría decir)
  como "Comment"... pero luego de leer la página
  y los comentarios queda claro que no lo es.
Se trata (una vez mas) el tema de los comentarios en el código :-(
  (un viaje mas hacia el pasado, en donde uno hablaba
  de escribir codigo... "auto"documentacion,
  diagramas 'pa ver mejor, etc...)

Tanto quien escribe como quienes comentan no conocen
  que el comment es un comentario del mensaje y no
  de "la implementacion"...
Es más, no se plantean el rol del mensaje en un esquema
  de objetos. A duras penas hablan de métodos!

Me sorprende (aun hoy) encontrar en contextos donde uno
  debería obtener contenido apropiado para alguien relacionado
  con smalltalk (o empezando), encontrar contenido y
  cuestionamientos fuera de lugar.
Es esto positivo para quienes usamos smalltalk?

Seguramente si uno pone todo en la balanza debería serlo,
  sino no tendría sentido algo como The Weekly Squeak...
  o será que no importa? que nadie mide los efectos
  y solo se miden los recursos necesarios para hacer algo?
  (se necesita espacio y varias notas)

Dónde se pueden encontrar las conclusiones sobre el
  estudio de los efectos/concecuencias?
Estamos condenados a sufrir/sentir las consecuencias
  y tratar de reparar lo que otros "hacen sin darse cuenta" ?

Porqué pregunto esto? (y cual es el motivante de escribirlo).

En la reunión pasada hablabamos de escribir algún
  contenido sobre nuestros temas...
Ok... ya lo acordamos y no es sobre esto que quiero
  volver, pero...

Qué hacer frente a esta facilidad de escribir que tenemos todos
  (incluso quien no tiene experiencia en algo tan puntual como Smalltalk)
  y los efectos que se producen ? (no mesurables de forma adecuada
  en la mayoría de los casos)

Es correcto ponerse a escribir para que quede escrito en algun lado...
Es suficiente escribir para que se escuche "la otra campana"?
No es patetico?

Es suficiente escribir un comentario en la nota y dar una opinion
  desde ese infimo punto (irrelevante para quien ya leyo la nota)
  de quien "piensa/entiende distinto"?

Se entiende lo que pregunto?
Es positivo hacer cada vez que algun otro haga?
No es así como llegamos a esta situacion?

He escuchado en el pasado opiniones y propuestas de qué hacer...
  y eso me motiva a volverlo a preguntar esperando los inquiete
  a ustedes tanto como a mi y los motive a dar su opinión al respecto.

Un link a la página que motivo esa sensación incomoda en mi
  y luego motivo este mensaje:
http://news.squeak.org/2007/04/16/whats-in-a-comment/#more-191

hasta pronto,
Ale.

#15913 De: "Lautaro Fernández" <evaklo@...>
Fecha: Lun, 25 de Jun, 2007 1:45 pm
Asunto: Re: [objetos] Opentalk en arquitectura cliente-servidor
nodoycuentas
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola alejandro, pudimos encontrar el problema. Se estaba rompiendo la conexión al pasarse de una ventana a otra. Sabemos ésto porque "harcodeamos" las conexiones por todos lados y anduvo.

En nuestra aplicación, se instancia una ventana(1) que permite elegir el jugador. Una vez elegido, se instancia otra ventana(2) que es la de juego en sí.
En (1) se crea la conexión, y cuando se crea la (2) se le pasa como parámetro la conexión.

Sólo falta ver cómo hacer bien eso, para que se deje de romper en la creación.


Ahora tengo otra pregunta:

Una vez que pudimos probar el jueguito nos dimos cuenta de que era muy lento(las pruebas las realizamos corriendo todo en la misma pc). Es decir, el tiempo desde que se hace una acción hasta que se muestran (verse reflejado el cambio en el cliente de forma gráfica) es muchísimo.

¿Alguien sabe qué se puede toquetear en OpenTalk para que ande más rápido?
O si existen ciertas cosas en el diseño que suelen ser las causantes de que ande lento.

Muchas gracias,
Santiago y Lautaro


--
Luke LAut SkyFernadezWalker

#15912 De: kikote gregoris <kikogregoris@...>
Fecha: Sáb, 16 de Jun, 2007 1:21 pm
Asunto: RE: OFFTOPIC: Interpolación de la cámara
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Gente
 
Bueno finalmente descubrí que estaba pasando con el tema de que se notaban pequeños saltos en el movimiento.
 
No era la cámara, ni la aceleración  del vehiculo lo que causaba este problema.
 
El tema esta en como actualizo NGD y Genesis3d en el mainLoop por decirlo así.
Lo descubrí  de casualidad y después de renegar  bastante.
Ahora  lo implemente de  una manera que funciona, pero parece no ser la mas adecuada. Ya que el movimiento del vehiculo es demasiado lento.
Afortunadamente encontré un artículo que explica con detalle cual es la  manera de trabajar con un sistema de integración como lo es la física y un sistema de render.
El punto es que en la parte final el autor explica un detalle que no entiendo y quería ver si alguien lo entiendo y puede aclararlo.
 
Este es el artículo entero por si alguien lo quiere completo:
 
 
Esta es la parte que no entiendo:
 
The final touch
So it seems that all is well. Our simulation is stable and framerate independent but there is still one last thing to do before it is perfect. Consider what will happen if the display framerate is 55fps and the physics is running at 60fps. Basically the time accumulator will have to alternate between taking one and two physics steps each display update to make sure that it keeps up. This irregular amount of physics steps taken per update causes a subtle but visually unpleasant stuttering of the physics simulation on the screen.
Even worse, if you have an oversampling case, say in slow motion mode (1/10th speed) your effective display framerate would be 600fps if your display is actually updating at 60fps. Assuming the physics is also running at 60fps the accumulator would only do one physics step every 10 display updates. This means that objects animate in discrete jarring steps every 1/6th of a second. This looks pretty dodgy but the good news is that there is a way to make sure that everything runs smoothly all of the time.
The solution is to interpolate between the previous physics state and the current state based on how much time is left in the accumulator. This will add a latency of up to dt to your physics simulation, but the visual results are definitely worth it. Here is how to implement it:
 
struct State
{
      float x;
      float v;
};
 
 
State interpolate(const State &previous, const State &current, float alpha)
{
      State state;
      state.x = current.x*alpha + previous.x*(1-alpha);
      state.v = current.v*alpha + previous.v*(1-alpha);
      return state;
}
State current;
      current.x = 100;
      current.v = 0;
     
      State previous = current;
 
      float t = 0.0f;
      float dt = 0.1f;
     
      float currentTime = 0.0f;
      float accumulator = 0.0f;
     
      while (!quit)
      {                
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
           
            const float newTime = time();
            float deltaTime = newTime - currentTime;
            currentTime = newTime;
           
            if (deltaTime>0.25f)
                  deltaTime = 0.25f;
           
            accumulator += deltaTime;
           
            while (accumulator>=dt)
            {
                  accumulator -= dt;
                  previous = current;
                  integrate(current, t, dt);
                  t += dt;
            }
           
                         State state = currentState*alpha + previousState*(1.0f-alpha);
                         render(state);  //Esto es en seudo-codigo como esta en el artículo
               "State state = interpolate(previous, current, accumulator/dt);
           
               glBegin(GL_POINTS);
               glColor3f(1,1,1);
               glVertex3f(state.x, 0, 0);
               glEnd();
           
               updateDisplay();"
      }
 
This looks pretty complicated but here is a simple way to think about it. After the deltaTime has been added to the accumulator and the physics steps of size dt have been performed, if the physics and display fps are not integer multiples of each other, then some time will remain in the accumulator. This remainder is effectively a measure of just how much more time is required before another whole physics step can be taken. For example, a remainder of dt/2 means that we are currently halfway between the current physics step and the next one. A remainder of dt*0.1 means that the update is 1/10th of the way between the previous and current states.
 
 
En mi renderLoop tengo un cálculo del tiempo que paso, para que el render se lleve a cabo siempre en un intervalo de tiempo fijo.
El hace una interpolación no se de que y lo usa para el render y es hay donde no me queda claro como esta usando ese STATE para el render.
Ya que el render lo estoy controlando en el calculo que tengo para fijar el frameRate.
 
Genesis hace el render  basicamente así.
(engine beginFrame: self camera)
                                   ifTrue: [
                                               render: aWorld with: self camera time: 0"seconds".
                                               engine endFrame. ].
 
El tema es que time:0  en la demo de genesis3D siempre es 0.
Es decir no puedo  usar  el valor de la interpolación para pasarlo a time:
 
No se si se alcanza a entender lo que estoy preguntando.
 
Saludos kiko


Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!

#15911 De: "Elvio Fernandez" <elvio.fernandez@...>
Fecha: Jue, 14 de Jun, 2007 3:17 am
Asunto: Re: [objetos] Limites de objetos
elvisman_780
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Matias

Alejandro hace tiempo que viene con el ejemplo del cardumen, para mostrar que a veces objetos no alcanza.

Estracto una charla con titulo " Re: Re[4]: [objetos] Re: Herencia Multiple" del 10 de nov del 2005

Alejandro decia:

"Los objetos son cosas, pero hay cosas que no son objetos.
Un ejemplo: un cardumen.
Si queres podes decir que "ves" un objeto.
Pero no es un objeto."

Nicolas:

"Qué es lo que le faltaría para que sea considerado un objeto?"

Alejandro:

" El primer principio :-) Preservar su identidad."

Nicolas:

" Tal vez dependa del contexto o del nivel de abstracción con el cual
  estemos viendo al cardumen."

Alejandro:

" Con lo que un objeto solo sería un punto de vista... Si seguis ese razonamiento, solo es posible la OO."

Nicolas:

"Esta claro que el cardumen emerge del comportamiento de los peces en su conjunto, pero por qué no podemos ver al cardumen como un todo, prescindiendo de los peces, es decir sintetizando en lugar de
aplicar reducción."

Alejandro:

" 1 cardumen de sardinas + 1 cardumen de sardinas = 1 cardumen de sardinas
Cual de los dos no existe mas?
Si se separa en dos... son los mismos que antes?
(aunque no tengan los mismos peces? y si los tienen?)

Distingamos entre "cosas" y "objetos".
Los objetos preservan su identidad, estan encapsulados.
Las cosas que son "abiertas" no son objetos (presentan emergentes)."





Un poquito mas por aqui  http://ar.groups.yahoo.com/group/smalltalking/message/15634


Saludos

Elvio











#15910 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mié, 13 de Jun, 2007 4:44 pm
Asunto: Re: [objetos] Opentalk en arquitectura cliente-servidor
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Lautaro,
(tu mensaje había sido separado por yahoo como si fuera spam)
En el stack no se ve que ocurriera alguna situacion recursiva.
Intentá loguear los mensajes remotos como pra ver si sale
 efectivamente alguno y que trafico real tenes...
suerte,
Ale.
 
 
----- Original Message -----
Sent: Friday, June 08, 2007 11:41 AM
Subject: Re: [objetos] Opentalk en arquitectura cliente-servidor

Hola Alejandro, adjunto el stack report porque es extenso.

El error, "Must be running to send remote messages!"  se produce en la ventana del cliente ni bien se levanta la aplicación (son las tres opciones que dimos en el primer e-mail de como se cuelga) y hasta ayer las únicas pruebas que habíamos hecho eran sobre la misma computadora.
Hoy lo probamos en una LAN de dos máquinas pero es peor, tarda demasiado en llevar y traer la información;  y una vez que se ve levanta  la ventana de la aplicación,  se cuelga como antes.

Es decir, no solo que se cuelga sino que además hay un tráfico terrible en la red, por lo que tarda en traer los objetos al cliente. Mucho. Pero esto es para más adelante, por lo menos hasta que ande la aplicación localmente.

     Otra suposición es que debido, por ejemplo, a un error
     en la noticicación de cambios ocurre una situación
     recursiva de change/updates... y eso hace que
     se genere un pingpong de mensajes... (deberías sentir
     que ambos equipos zapatean y/o se les consume memoria)
     que al no resolverse, termina dando un error por falta
     de respuesta.
     (quizás no esta cerrda la conexión, sino que solo no se
     recibió una respuesta en el tiempo esperado)

Mirá, entre el cliente y el servidor hay muchísimas dependencias, pero a pesar de eso, lo único que se cuelga es el cliente. Es decir, en la ventana del servidor no pareciera que hubiera mucho tráfico, pero sí parece que hay mucho tráfico en la ventana del cliente(por el retardo en dibujarse y demás)

Gracias Alejandro
Saludos
Lautaro
--
Luke LAut SkyFernadezWalker

#15909 De: "Lautaro Fernández" <evaklo@...>
Fecha: Mié, 13 de Jun, 2007 3:09 am
Asunto: Fwd: [objetos] Opentalk en arquitectura cliente-servidor
nodoycuentas
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Re envio del mensaje, porque aparentemente no llegó("---------- Forwarded message ----------"):



Hola Alejandro, adjunto el stack report porque es extenso.

El error, "Must be running to send remote messages!"  se produce en la ventana del cliente ni bien se levanta la aplicación (son las tres opciones que dimos en el primer e-mail de como se cuelga) y hasta ayer las únicas pruebas que habíamos hecho eran sobre la misma computadora.
Hoy lo probamos en una LAN de dos máquinas pero es peor, tarda demasiado en llevar y traer la información;  y una vez que se ve levanta  la ventana de la aplicación,  se cuelga como antes.

Es decir, no solo que se cuelga sino que además hay un tráfico terrible en la red, por lo que tarda en traer los objetos al cliente. Mucho. Pero esto es para más adelante, por lo menos hasta que ande la aplicación localmente.

     Otra suposición es que debido, por ejemplo, a un error
     en la noticicación de cambios ocurre una situación
     recursiva de change/updates... y eso hace que
     se genere un pingpong de mensajes... (deberías sentir
     que ambos equipos zapatean y/o se les consume memoria)
     que al no resolverse, termina dando un error por falta
     de respuesta.
     (quizás no esta cerrda la conexión, sino que solo no se
     recibió una respuesta en el tiempo esperado)

Mirá, entre el cliente y el servidor hay muchísimas dependencias, pero a pesar de eso, lo único que se cuelga es el cliente. Es decir, en la ventana del servidor no pareciera que hubiera mucho tráfico, pero sí parece que hay mucho tráfico en la ventana del cliente(por el retardo en dibujarse y demás)

Gracias Alejandro
Saludos
Lautaro
--
Luke LAut SkyFernadezWalker


Unhandled exception: Must be running to send remote messages!
Opentalk.ConnectionAdaptor(Opentalk.BasicObjectAdaptor)>>sendRequest:
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendRequest:
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendMessage:to:timeout:
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendMessage:to:
Opentalk.RemoteObject>>_sendMessage:
Opentalk.RemoteObject>>doesNotUnderstand:
CeldaView>>imagenADibujar
CeldaView>>displayOn:
optimized [] in MapaView>>displayOn:
OrderedCollection>>do:
MapaView>>displayOn:
BorderedWrapper>>displayOn:
SpecWrapper(Wrapper)>>displayOn:
SpecWrapper(WidgetWrapper)>>displayOn:
CompositePart>>displayOn:
WindowDisplayPolicy>>displayDamageList:in:
ApplicationWindow(ScheduledWindow)>>displayDamageEvent:
ApplicationWindow(ScheduledWindow)>>checkForEvents
optimized [] in [] in WindowManager>>repairDamagesExcept:
OrderedCollection>>do:
optimized [] in WindowManager>>repairDamagesExcept:
BlockClosure>>on:do:
WindowManager>>repairDamagesExcept:
WindowManager>>repairDamages
WindowManager>>processNextEvent
optimized [] in [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
Opentalk.ConnectionAdaptor(Opentalk.BasicObjectAdaptor)>>sendRequest:
Receiver:
	 a Opentalk.ConnectionAdaptor
Instance Variables:
	 handlers = nil
	 state = #stopped
	 configuration = ConnectionAdaptorConfiguration new
	 accessPoint: IPSocketAddress(port#5001 at:mturing.CAQUITA)
	 transport: (TCPTransportConfiguration new
		 marshaler: (STSTMarshalerConfiguration new))
	 requestDispatcher: (StandardRequestDispatcherConfiguration new)
	 id = nil
	 accessPoint = IPSocketAddress(port#5001 at:mturing.CAQUITA)
	 localAccessPoint = IPSocketAddress(port#5001 at:localhost)
	 accessAddress = a ByteArray[4]
	 objectTable = an Opentalk.ObjectTable
	 orb = Broker<tcp/192.168.2.100:5001>
	 requestDispatcher = an Opentalk.StandardRequestDispatcher
	 processingPolicy = an Opentalk.ProcessingPolicy
	 localityTest = BlockClosure [] in Opentalk.BasicObjectAdaptor
class>>defaultLocalityTestValue
	 connections = a Protocols.SharedRegistry
	 clientConnections = a Protocols.SharedRegistry
	 listener = an Opentalk.ConnectionListener
	 connectionTimeout = nil
	 connectingTimeout = nil
	 upperConnectionLimit = nil
	 lowerConnectionLimit = nil
	 maxAcceptDelay = nil
	 isBiDirectional = nil
	 useDistinctServerEvents = nil
Arguments:
	 aRequest = STSTRequest[nil]{ObjRef<105@...:3000> contenido}
Context PC = 20

----------------------------------------------------------------------
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendRequest:
Receiver:
	 a Opentalk.RequestBroker
Instance Variables:
	 handlers = nil
	 state = #stopped
	 configuration = StandardBrokerConfiguration new
	 adaptor: (ConnectionAdaptorConfiguration new
		 accessPoint: IPSocketAddress(port#5001 at:mturing.CAQUITA)
		 transport: (TCPTransportConfiguration new
			 marshaler: (STSTMarshalerConfiguration new))
		 requestDispatcher: (StandardRequestDispatcherConfiguration new))
	 id = #'RequestBroker 3358765412677'
	 remoteObjectRegistry = an Opentalk.OtWeakValueDictionary
	 objectAdaptor = Adaptor<tcp/192.168.2.100:5001>
	 requestType = Opentalk.STSTRequest
	 requestTimeout = nil
	 serviceDictionary = a Dictionary[0]
	 openSelectors = an Array[5]
Arguments:
	 aRequest = STSTRequest[nil]{ObjRef<105@...:3000> contenido}
Context PC = 6

----------------------------------------------------------------------
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendMessage:to:timeout:
Receiver:
	 a Opentalk.RequestBroker
Instance Variables:
	 handlers = nil
	 state = #stopped
	 configuration = StandardBrokerConfiguration new
	 adaptor: (ConnectionAdaptorConfiguration new
		 accessPoint: IPSocketAddress(port#5001 at:mturing.CAQUITA)
		 transport: (TCPTransportConfiguration new
			 marshaler: (STSTMarshalerConfiguration new))
		 requestDispatcher: (StandardRequestDispatcherConfiguration new))
	 id = #'RequestBroker 3358765412677'
	 remoteObjectRegistry = an Opentalk.OtWeakValueDictionary
	 objectAdaptor = Adaptor<tcp/192.168.2.100:5001>
	 requestType = Opentalk.STSTRequest
	 requestTimeout = nil
	 serviceDictionary = a Dictionary[0]
	 openSelectors = an Array[5]
Arguments:
	 msg = a Message with selector: #contenido and arguments: #()
	 objRef = ObjRef<105@...:3000>
	 ms = 60000
Context PC = 21

----------------------------------------------------------------------
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendMessage:to:
Receiver:
	 a Opentalk.RequestBroker
Instance Variables:
	 handlers = nil
	 state = #stopped
	 configuration = StandardBrokerConfiguration new
	 adaptor: (ConnectionAdaptorConfiguration new
		 accessPoint: IPSocketAddress(port#5001 at:mturing.CAQUITA)
		 transport: (TCPTransportConfiguration new
			 marshaler: (STSTMarshalerConfiguration new))
		 requestDispatcher: (StandardRequestDispatcherConfiguration new))
	 id = #'RequestBroker 3358765412677'
	 remoteObjectRegistry = an Opentalk.OtWeakValueDictionary
	 objectAdaptor = Adaptor<tcp/192.168.2.100:5001>
	 requestType = Opentalk.STSTRequest
	 requestTimeout = nil
	 serviceDictionary = a Dictionary[0]
	 openSelectors = an Array[5]
Arguments:
	 msg = a Message with selector: #contenido and arguments: #()
	 objRef = ObjRef<105@...:3000>
Context PC = 9

----------------------------------------------------------------------
Opentalk.RemoteObject>>_sendMessage:
Receiver:
	 a Opentalk.RemoteObject
Instance Variables:
	 objRef = ObjRef<105@...:3000>
	 requestBroker = Broker<tcp/192.168.2.100:5001>
	 dependents = a Opentalk.LocalDependents[1]
Arguments:
	 aMessage = a Message with selector: #contenido and arguments: #()
Context PC = 5

----------------------------------------------------------------------
Opentalk.RemoteObject>>doesNotUnderstand:
Receiver:
	 a Opentalk.RemoteObject
Instance Variables:
	 objRef = ObjRef<105@...:3000>
	 requestBroker = Broker<tcp/192.168.2.100:5001>
	 dependents = a Opentalk.LocalDependents[1]
Arguments:
	 aMessage = a Message with selector: #contenido and arguments: #()
Context PC = 5

----------------------------------------------------------------------
CeldaView>>imagenADibujar
Receiver:
	 a CeldaView
Instance Variables:
	 container = nil
	 eventHandlers = nil
	 model = a Opentalk.RemoteObject
	 controller = nil
	 properties = nil
	 posicionRelativa = 1@1
	 contenedorDeImagenes = an ImageContenedor
Temporaries:
	 visitorContenido = nil
	 contenido = nil
Context PC = 5

----------------------------------------------------------------------
CeldaView>>displayOn:
Receiver:
	 a CeldaView
Instance Variables:
	 container = nil
	 eventHandlers = nil
	 model = a Opentalk.RemoteObject
	 controller = nil
	 properties = nil
	 posicionRelativa = 1@1
	 contenedorDeImagenes = an ImageContenedor
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Temporaries:
	 pos = 1@1
	 columna = 1
	 fila = 1
Context PC = 22

----------------------------------------------------------------------
optimized [] in MapaView>>displayOn:
Receiver:
	 an UndefinedObject
Arguments:
	 each = a CeldaView
Temporaries:
	 .aGraphicsContext = a ScreenGraphicsContext
Context PC = 7

----------------------------------------------------------------------
OrderedCollection>>do:
Receiver:
	 an OrderedCollection
Instance Variables:
	 firstIndex = 1
	 lastIndex = 49
Arguments:
	 aBlock = BlockClosure [] in MapaView>>displayOn:
Temporaries:
	 index = 1
Context PC = 17

----------------------------------------------------------------------
MapaView>>displayOn:
Receiver:
	 a MapaView
Instance Variables:
	 container = a BorderedWrapper on: a MapaView
	 eventHandlers = nil
	 model = a Opentalk.RemoteObject
	 controller = a MapaController
	 properties = nil
	 celdasView = an OrderedCollection[49]
	 contenedorDeImagenes = an ImageContenedor
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Context PC = 10

----------------------------------------------------------------------
BorderedWrapper>>displayOn:
Receiver:
	 a BorderedWrapper
Instance Variables:
	 container = a SpecWrapper on: a BorderedWrapper on: a MapaView
	 eventHandlers = nil
	 component = a MapaView
	 origin = 10@10
	 layout = nil
	 extent = 351@351
	 insetDisplayBox = 11@11 corner: 360@360
	 border = a WinXPBorder
	 inset = nil
	 insideColor = nil
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Temporaries:
	 bx = 10@10 corner: 361@361
	 clipBox = 203@124 corner: 361@129
	 insetClipBox = 203@124 corner: 360@129
Context PC = 64

----------------------------------------------------------------------
SpecWrapper(Wrapper)>>displayOn:
Receiver:
	 a SpecWrapper
Instance Variables:
	 container = a CompositePart
	 eventHandlers = nil
	 component = a BorderedWrapper on: a MapaView
	 widget = a MapaView
	 widgetState = a WidgetState
	 effectivelyVisible = true
	 decorator = nil
	 dependents = nil
	 dropTarget = nil
	 spec = an ArbitraryComponentSpec
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Context PC = 7

----------------------------------------------------------------------
SpecWrapper(WidgetWrapper)>>displayOn:
Receiver:
	 a SpecWrapper
Instance Variables:
	 container = a CompositePart
	 eventHandlers = nil
	 component = a BorderedWrapper on: a MapaView
	 widget = a MapaView
	 widgetState = a WidgetState
	 effectivelyVisible = true
	 decorator = nil
	 dependents = nil
	 dropTarget = nil
	 spec = an ArbitraryComponentSpec
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Temporaries:
	 lp = nil
Context PC = 26

----------------------------------------------------------------------
CompositePart>>displayOn:
Receiver:
	 a CompositePart
Instance Variables:
	 container = an ApplicationWindow 740
	 eventHandlers = nil
	 components = an OrderedCollection[27]
	 preferredBounds = 0@0 corner: 741@531
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Temporaries:
	 clipBox = 203@124 corner: 547@129
	 i = 2
	 component = a SpecWrapper on: a BorderedWrapper on: a MapaView
Context PC = 30

----------------------------------------------------------------------
WindowDisplayPolicy>>displayDamageList:in:
Receiver:
	 a WindowDisplayPolicy
Arguments:
	 aDamageList = an Array[1]
	 aWindow = an ApplicationWindow 740
Temporaries:
	 windowGraphicsContext = a ScreenGraphicsContext
	 windowVisual = a CompositePart
	 i = 2
	 i = 1
Context PC = 73

----------------------------------------------------------------------
ApplicationWindow(ScheduledWindow)>>displayDamageEvent:
Receiver:
	 an ApplicationWindow
Instance Variables:
	 handle = a GraphicsHandle(740)
	 width = 750
	 height = 550
	 background = (ColorValue brightness: 0.984007)
	 inputOrigin = 137@94
	 creationOrigin = 137@94
	 sensor = an EventSensor
	 iconic = false
	 windowType = #normal
	 effectiveWindowType = nil
	 statusLineHeight = 0
	 allowsStatusLine = true
	 mapped = true
	 eventHandlers = nil
	 windowManager = a WindowManager
	 label = 'RPG - juegazo - mturing.CAQUITA::tr'
	 icon = an Icon
	 minimumSize = 750@550
	 maximumSize = 750@550
	 component = a CompositePart
	 lookPreferences = a LookPreferences[7]
	 paintPreferences = nil
	 edgeDecorationPolicy = a WinXPBorderDecorationPolicy
	 widgetPolicy = a WinXPWidgetPolicy
	 controller = an ApplicationStandardSystemController
	 model = a JuegoAplicacion
	 damageRepairPolicy = a WindowDisplayPolicy
	 masterWindow = nil
	 keyboardProcessor = a KeyboardProcessor
	 application = nil
	 sendWindowEvents = nil
	 receiveWindowEvents = nil
	 windowEventBlock = nil
	 damageRepairIsLazy = true
	 activationNotification = true
	 isEventDriven = nil
	 toolbarVisible = true
	 dropTarget = nil
	 dragDropInProgress = nil
	 dragDropTracker = nil
Arguments:
	 aDamageList = an Array[1]
Context PC = 7

----------------------------------------------------------------------
ApplicationWindow(ScheduledWindow)>>checkForEvents
Receiver:
	 an ApplicationWindow
Instance Variables:
	 handle = a GraphicsHandle(740)
	 width = 750
	 height = 550
	 background = (ColorValue brightness: 0.984007)
	 inputOrigin = 137@94
	 creationOrigin = 137@94
	 sensor = an EventSensor
	 iconic = false
	 windowType = #normal
	 effectiveWindowType = nil
	 statusLineHeight = 0
	 allowsStatusLine = true
	 mapped = true
	 eventHandlers = nil
	 windowManager = a WindowManager
	 label = 'RPG - juegazo - mturing.CAQUITA::tr'
	 icon = an Icon
	 minimumSize = 750@550
	 maximumSize = 750@550
	 component = a CompositePart
	 lookPreferences = a LookPreferences[7]
	 paintPreferences = nil
	 edgeDecorationPolicy = a WinXPBorderDecorationPolicy
	 widgetPolicy = a WinXPWidgetPolicy
	 controller = an ApplicationStandardSystemController
	 model = a JuegoAplicacion
	 damageRepairPolicy = a WindowDisplayPolicy
	 masterWindow = nil
	 keyboardProcessor = a KeyboardProcessor
	 application = nil
	 sendWindowEvents = nil
	 receiveWindowEvents = nil
	 windowEventBlock = nil
	 damageRepairIsLazy = true
	 activationNotification = true
	 isEventDriven = nil
	 toolbarVisible = true
	 dropTarget = nil
	 dragDropInProgress = nil
	 dragDropTracker = nil
Temporaries:
	 damage = an Array[1]
Context PC = 33

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>repairDamagesExcept:
Receiver:
	 an UndefinedObject
Arguments:
	 w = an ApplicationWindow 740
Temporaries:
	 .obj = nil
Context PC = 10

----------------------------------------------------------------------
OrderedCollection>>do:
Receiver:
	 an OrderedCollection
Instance Variables:
	 firstIndex = 3
	 lastIndex = 5
Arguments:
	 aBlock = BlockClosure [] in [] in WindowManager>>repairDamagesExcept:
Temporaries:
	 index = 3
Context PC = 17

----------------------------------------------------------------------
optimized [] in WindowManager>>repairDamagesExcept:
Receiver:
	 an UndefinedObject
Temporaries:
	 .self = a WindowManager
	 .obj = nil
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	 a BlockClosure
Instance Variables:
	 method = CompiledBlock [] in WindowManager>>repairDamagesExcept:
	 outerContext = nil
	 copiedValues = an Array[2]
Arguments:
	 anExceptionSelector = ClosedWindowNotification
	 handlerBlock = BlockClosure [] in WindowManager>>repairDamagesExcept:
Context PC = 18

----------------------------------------------------------------------
WindowManager>>repairDamagesExcept:
Receiver:
	 a WindowManager
Instance Variables:
	 windows = an OrderedCollection[3]
	 activeController = nil
	 interruptLock = false
	 outstandingMetaOrDamage = false
	 openInProgress = false
	 eventQueue = an EventQueue
	 baseProcess = a Process in Semaphore>>wait
	 dontFilterEvents = false
Arguments:
	 obj = nil
Context PC = 16

----------------------------------------------------------------------
WindowManager>>repairDamages
Receiver:
	 a WindowManager
Instance Variables:
	 windows = an OrderedCollection[3]
	 activeController = nil
	 interruptLock = false
	 outstandingMetaOrDamage = false
	 openInProgress = false
	 eventQueue = an EventQueue
	 baseProcess = a Process in Semaphore>>wait
	 dontFilterEvents = false
Context PC = 5

----------------------------------------------------------------------
WindowManager>>processNextEvent
Receiver:
	 a WindowManager
Instance Variables:
	 windows = an OrderedCollection[3]
	 activeController = nil
	 interruptLock = false
	 outstandingMetaOrDamage = false
	 openInProgress = false
	 eventQueue = an EventQueue
	 baseProcess = a Process in Semaphore>>wait
	 dontFilterEvents = false
Temporaries:
	 event = an ExposeEvent
Context PC = 12

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>newProcess
Receiver:
	 an UndefinedObject
Temporaries:
	 .self = a WindowManager
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	 a BlockClosure
Instance Variables:
	 method = CompiledBlock [] in [] in WindowManager>>newProcess
	 outerContext = nil
	 copiedValues = a WindowManager
Arguments:
	 anExceptionSelector = TerminateException
	 handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
Context PC = 18

----------------------------------------------------------------------
optimized [] in WindowManager>>newProcess
Receiver:
	 an UndefinedObject
Temporaries:
	 .self = a WindowManager
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	 a BlockClosure
Instance Variables:
	 method = CompiledBlock [] in WindowManager>>newProcess
	 outerContext = nil
	 copiedValues = a WindowManager
Arguments:
	 anExceptionSelector = TerminateException
	 handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Process class>>forBlock:priority:
Receiver:
	 an UndefinedObject
Temporaries:
	 .aBlock = BlockClosure [] in WindowManager>>newProcess
Context PC = 9

#15908 De: "Lautaro Fernández" <evaklo@...>
Fecha: Vie, 8 de Jun, 2007 2:41 pm
Asunto: Re: [objetos] Opentalk en arquitectura cliente-servidor
nodoycuentas
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Alejandro, adjunto el stack report porque es extenso.

El error, "Must be running to send remote messages!"  se produce en la ventana del cliente ni bien se levanta la aplicación (son las tres opciones que dimos en el primer e-mail de como se cuelga) y hasta ayer las únicas pruebas que habíamos hecho eran sobre la misma computadora.
Hoy lo probamos en una LAN de dos máquinas pero es peor, tarda demasiado en llevar y traer la información;  y una vez que se ve levanta  la ventana de la aplicación,  se cuelga como antes.

Es decir, no solo que se cuelga sino que además hay un tráfico terrible en la red, por lo que tarda en traer los objetos al cliente. Mucho. Pero esto es para más adelante, por lo menos hasta que ande la aplicación localmente.

     Otra suposición es que debido, por ejemplo, a un error
     en la noticicación de cambios ocurre una situación
     recursiva de change/updates... y eso hace que
     se genere un pingpong de mensajes... (deberías sentir
     que ambos equipos zapatean y/o se les consume memoria)
     que al no resolverse, termina dando un error por falta
     de respuesta.
     (quizás no esta cerrda la conexión, sino que solo no se
     recibió una respuesta en el tiempo esperado)

Mirá, entre el cliente y el servidor hay muchísimas dependencias, pero a pesar de eso, lo único que se cuelga es el cliente. Es decir, en la ventana del servidor no pareciera que hubiera mucho tráfico, pero sí parece que hay mucho tráfico en la ventana del cliente(por el retardo en dibujarse y demás)

Gracias Alejandro
Saludos
Lautaro
--
Luke LAut SkyFernadezWalker
Unhandled exception: Must be running to send remote messages!
Opentalk.ConnectionAdaptor(Opentalk.BasicObjectAdaptor)>>sendRequest:
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendRequest:
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendMessage:to:timeout:
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendMessage:to:
Opentalk.RemoteObject>>_sendMessage:
Opentalk.RemoteObject>>doesNotUnderstand:
CeldaView>>imagenADibujar
CeldaView>>displayOn:
optimized [] in MapaView>>displayOn:
OrderedCollection>>do:
MapaView>>displayOn:
BorderedWrapper>>displayOn:
SpecWrapper(Wrapper)>>displayOn:
SpecWrapper(WidgetWrapper)>>displayOn:
CompositePart>>displayOn:
WindowDisplayPolicy>>displayDamageList:in:
ApplicationWindow(ScheduledWindow)>>displayDamageEvent:
ApplicationWindow(ScheduledWindow)>>checkForEvents
optimized [] in [] in WindowManager>>repairDamagesExcept:
OrderedCollection>>do:
optimized [] in WindowManager>>repairDamagesExcept:
BlockClosure>>on:do:
WindowManager>>repairDamagesExcept:
WindowManager>>repairDamages
WindowManager>>processNextEvent
optimized [] in [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in WindowManager>>newProcess
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
Opentalk.ConnectionAdaptor(Opentalk.BasicObjectAdaptor)>>sendRequest:
Receiver:
	 a Opentalk.ConnectionAdaptor
Instance Variables:
	 handlers = nil
	 state = #stopped
	 configuration = ConnectionAdaptorConfiguration new
	 accessPoint: IPSocketAddress(port#5001 at:mturing.CAQUITA)
	 transport: (TCPTransportConfiguration new
		 marshaler: (STSTMarshalerConfiguration new))
	 requestDispatcher: (StandardRequestDispatcherConfiguration new)
	 id = nil
	 accessPoint = IPSocketAddress(port#5001 at:mturing.CAQUITA)
	 localAccessPoint = IPSocketAddress(port#5001 at:localhost)
	 accessAddress = a ByteArray[4]
	 objectTable = an Opentalk.ObjectTable
	 orb = Broker<tcp/192.168.2.100:5001>
	 requestDispatcher = an Opentalk.StandardRequestDispatcher
	 processingPolicy = an Opentalk.ProcessingPolicy
	 localityTest = BlockClosure [] in Opentalk.BasicObjectAdaptor
class>>defaultLocalityTestValue
	 connections = a Protocols.SharedRegistry
	 clientConnections = a Protocols.SharedRegistry
	 listener = an Opentalk.ConnectionListener
	 connectionTimeout = nil
	 connectingTimeout = nil
	 upperConnectionLimit = nil
	 lowerConnectionLimit = nil
	 maxAcceptDelay = nil
	 isBiDirectional = nil
	 useDistinctServerEvents = nil
Arguments:
	 aRequest = STSTRequest[nil]{ObjRef<105@...:3000> contenido}
Context PC = 20

----------------------------------------------------------------------
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendRequest:
Receiver:
	 a Opentalk.RequestBroker
Instance Variables:
	 handlers = nil
	 state = #stopped
	 configuration = StandardBrokerConfiguration new
	 adaptor: (ConnectionAdaptorConfiguration new
		 accessPoint: IPSocketAddress(port#5001 at:mturing.CAQUITA)
		 transport: (TCPTransportConfiguration new
			 marshaler: (STSTMarshalerConfiguration new))
		 requestDispatcher: (StandardRequestDispatcherConfiguration new))
	 id = #'RequestBroker 3358765412677'
	 remoteObjectRegistry = an Opentalk.OtWeakValueDictionary
	 objectAdaptor = Adaptor<tcp/192.168.2.100:5001>
	 requestType = Opentalk.STSTRequest
	 requestTimeout = nil
	 serviceDictionary = a Dictionary[0]
	 openSelectors = an Array[5]
Arguments:
	 aRequest = STSTRequest[nil]{ObjRef<105@...:3000> contenido}
Context PC = 6

----------------------------------------------------------------------
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendMessage:to:timeout:
Receiver:
	 a Opentalk.RequestBroker
Instance Variables:
	 handlers = nil
	 state = #stopped
	 configuration = StandardBrokerConfiguration new
	 adaptor: (ConnectionAdaptorConfiguration new
		 accessPoint: IPSocketAddress(port#5001 at:mturing.CAQUITA)
		 transport: (TCPTransportConfiguration new
			 marshaler: (STSTMarshalerConfiguration new))
		 requestDispatcher: (StandardRequestDispatcherConfiguration new))
	 id = #'RequestBroker 3358765412677'
	 remoteObjectRegistry = an Opentalk.OtWeakValueDictionary
	 objectAdaptor = Adaptor<tcp/192.168.2.100:5001>
	 requestType = Opentalk.STSTRequest
	 requestTimeout = nil
	 serviceDictionary = a Dictionary[0]
	 openSelectors = an Array[5]
Arguments:
	 msg = a Message with selector: #contenido and arguments: #()
	 objRef = ObjRef<105@...:3000>
	 ms = 60000
Context PC = 21

----------------------------------------------------------------------
Opentalk.RequestBroker(Opentalk.BasicRequestBroker)>>sendMessage:to:
Receiver:
	 a Opentalk.RequestBroker
Instance Variables:
	 handlers = nil
	 state = #stopped
	 configuration = StandardBrokerConfiguration new
	 adaptor: (ConnectionAdaptorConfiguration new
		 accessPoint: IPSocketAddress(port#5001 at:mturing.CAQUITA)
		 transport: (TCPTransportConfiguration new
			 marshaler: (STSTMarshalerConfiguration new))
		 requestDispatcher: (StandardRequestDispatcherConfiguration new))
	 id = #'RequestBroker 3358765412677'
	 remoteObjectRegistry = an Opentalk.OtWeakValueDictionary
	 objectAdaptor = Adaptor<tcp/192.168.2.100:5001>
	 requestType = Opentalk.STSTRequest
	 requestTimeout = nil
	 serviceDictionary = a Dictionary[0]
	 openSelectors = an Array[5]
Arguments:
	 msg = a Message with selector: #contenido and arguments: #()
	 objRef = ObjRef<105@...:3000>
Context PC = 9

----------------------------------------------------------------------
Opentalk.RemoteObject>>_sendMessage:
Receiver:
	 a Opentalk.RemoteObject
Instance Variables:
	 objRef = ObjRef<105@...:3000>
	 requestBroker = Broker<tcp/192.168.2.100:5001>
	 dependents = a Opentalk.LocalDependents[1]
Arguments:
	 aMessage = a Message with selector: #contenido and arguments: #()
Context PC = 5

----------------------------------------------------------------------
Opentalk.RemoteObject>>doesNotUnderstand:
Receiver:
	 a Opentalk.RemoteObject
Instance Variables:
	 objRef = ObjRef<105@...:3000>
	 requestBroker = Broker<tcp/192.168.2.100:5001>
	 dependents = a Opentalk.LocalDependents[1]
Arguments:
	 aMessage = a Message with selector: #contenido and arguments: #()
Context PC = 5

----------------------------------------------------------------------
CeldaView>>imagenADibujar
Receiver:
	 a CeldaView
Instance Variables:
	 container = nil
	 eventHandlers = nil
	 model = a Opentalk.RemoteObject
	 controller = nil
	 properties = nil
	 posicionRelativa = 1@1
	 contenedorDeImagenes = an ImageContenedor
Temporaries:
	 visitorContenido = nil
	 contenido = nil
Context PC = 5

----------------------------------------------------------------------
CeldaView>>displayOn:
Receiver:
	 a CeldaView
Instance Variables:
	 container = nil
	 eventHandlers = nil
	 model = a Opentalk.RemoteObject
	 controller = nil
	 properties = nil
	 posicionRelativa = 1@1
	 contenedorDeImagenes = an ImageContenedor
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Temporaries:
	 pos = 1@1
	 columna = 1
	 fila = 1
Context PC = 22

----------------------------------------------------------------------
optimized [] in MapaView>>displayOn:
Receiver:
	 an UndefinedObject
Arguments:
	 each = a CeldaView
Temporaries:
	 .aGraphicsContext = a ScreenGraphicsContext
Context PC = 7

----------------------------------------------------------------------
OrderedCollection>>do:
Receiver:
	 an OrderedCollection
Instance Variables:
	 firstIndex = 1
	 lastIndex = 49
Arguments:
	 aBlock = BlockClosure [] in MapaView>>displayOn:
Temporaries:
	 index = 1
Context PC = 17

----------------------------------------------------------------------
MapaView>>displayOn:
Receiver:
	 a MapaView
Instance Variables:
	 container = a BorderedWrapper on: a MapaView
	 eventHandlers = nil
	 model = a Opentalk.RemoteObject
	 controller = a MapaController
	 properties = nil
	 celdasView = an OrderedCollection[49]
	 contenedorDeImagenes = an ImageContenedor
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Context PC = 10

----------------------------------------------------------------------
BorderedWrapper>>displayOn:
Receiver:
	 a BorderedWrapper
Instance Variables:
	 container = a SpecWrapper on: a BorderedWrapper on: a MapaView
	 eventHandlers = nil
	 component = a MapaView
	 origin = 10@10
	 layout = nil
	 extent = 351@351
	 insetDisplayBox = 11@11 corner: 360@360
	 border = a WinXPBorder
	 inset = nil
	 insideColor = nil
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Temporaries:
	 bx = 10@10 corner: 361@361
	 clipBox = 203@124 corner: 361@129
	 insetClipBox = 203@124 corner: 360@129
Context PC = 64

----------------------------------------------------------------------
SpecWrapper(Wrapper)>>displayOn:
Receiver:
	 a SpecWrapper
Instance Variables:
	 container = a CompositePart
	 eventHandlers = nil
	 component = a BorderedWrapper on: a MapaView
	 widget = a MapaView
	 widgetState = a WidgetState
	 effectivelyVisible = true
	 decorator = nil
	 dependents = nil
	 dropTarget = nil
	 spec = an ArbitraryComponentSpec
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Context PC = 7

----------------------------------------------------------------------
SpecWrapper(WidgetWrapper)>>displayOn:
Receiver:
	 a SpecWrapper
Instance Variables:
	 container = a CompositePart
	 eventHandlers = nil
	 component = a BorderedWrapper on: a MapaView
	 widget = a MapaView
	 widgetState = a WidgetState
	 effectivelyVisible = true
	 decorator = nil
	 dependents = nil
	 dropTarget = nil
	 spec = an ArbitraryComponentSpec
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Temporaries:
	 lp = nil
Context PC = 26

----------------------------------------------------------------------
CompositePart>>displayOn:
Receiver:
	 a CompositePart
Instance Variables:
	 container = an ApplicationWindow 740
	 eventHandlers = nil
	 components = an OrderedCollection[27]
	 preferredBounds = 0@0 corner: 741@531
Arguments:
	 aGraphicsContext = a ScreenGraphicsContext
Temporaries:
	 clipBox = 203@124 corner: 547@129
	 i = 2
	 component = a SpecWrapper on: a BorderedWrapper on: a MapaView
Context PC = 30

----------------------------------------------------------------------
WindowDisplayPolicy>>displayDamageList:in:
Receiver:
	 a WindowDisplayPolicy
Arguments:
	 aDamageList = an Array[1]
	 aWindow = an ApplicationWindow 740
Temporaries:
	 windowGraphicsContext = a ScreenGraphicsContext
	 windowVisual = a CompositePart
	 i = 2
	 i = 1
Context PC = 73

----------------------------------------------------------------------
ApplicationWindow(ScheduledWindow)>>displayDamageEvent:
Receiver:
	 an ApplicationWindow
Instance Variables:
	 handle = a GraphicsHandle(740)
	 width = 750
	 height = 550
	 background = (ColorValue brightness: 0.984007)
	 inputOrigin = 137@94
	 creationOrigin = 137@94
	 sensor = an EventSensor
	 iconic = false
	 windowType = #normal
	 effectiveWindowType = nil
	 statusLineHeight = 0
	 allowsStatusLine = true
	 mapped = true
	 eventHandlers = nil
	 windowManager = a WindowManager
	 label = 'RPG - juegazo - mturing.CAQUITA::tr'
	 icon = an Icon
	 minimumSize = 750@550
	 maximumSize = 750@550
	 component = a CompositePart
	 lookPreferences = a LookPreferences[7]
	 paintPreferences = nil
	 edgeDecorationPolicy = a WinXPBorderDecorationPolicy
	 widgetPolicy = a WinXPWidgetPolicy
	 controller = an ApplicationStandardSystemController
	 model = a JuegoAplicacion
	 damageRepairPolicy = a WindowDisplayPolicy
	 masterWindow = nil
	 keyboardProcessor = a KeyboardProcessor
	 application = nil
	 sendWindowEvents = nil
	 receiveWindowEvents = nil
	 windowEventBlock = nil
	 damageRepairIsLazy = true
	 activationNotification = true
	 isEventDriven = nil
	 toolbarVisible = true
	 dropTarget = nil
	 dragDropInProgress = nil
	 dragDropTracker = nil
Arguments:
	 aDamageList = an Array[1]
Context PC = 7

----------------------------------------------------------------------
ApplicationWindow(ScheduledWindow)>>checkForEvents
Receiver:
	 an ApplicationWindow
Instance Variables:
	 handle = a GraphicsHandle(740)
	 width = 750
	 height = 550
	 background = (ColorValue brightness: 0.984007)
	 inputOrigin = 137@94
	 creationOrigin = 137@94
	 sensor = an EventSensor
	 iconic = false
	 windowType = #normal
	 effectiveWindowType = nil
	 statusLineHeight = 0
	 allowsStatusLine = true
	 mapped = true
	 eventHandlers = nil
	 windowManager = a WindowManager
	 label = 'RPG - juegazo - mturing.CAQUITA::tr'
	 icon = an Icon
	 minimumSize = 750@550
	 maximumSize = 750@550
	 component = a CompositePart
	 lookPreferences = a LookPreferences[7]
	 paintPreferences = nil
	 edgeDecorationPolicy = a WinXPBorderDecorationPolicy
	 widgetPolicy = a WinXPWidgetPolicy
	 controller = an ApplicationStandardSystemController
	 model = a JuegoAplicacion
	 damageRepairPolicy = a WindowDisplayPolicy
	 masterWindow = nil
	 keyboardProcessor = a KeyboardProcessor
	 application = nil
	 sendWindowEvents = nil
	 receiveWindowEvents = nil
	 windowEventBlock = nil
	 damageRepairIsLazy = true
	 activationNotification = true
	 isEventDriven = nil
	 toolbarVisible = true
	 dropTarget = nil
	 dragDropInProgress = nil
	 dragDropTracker = nil
Temporaries:
	 damage = an Array[1]
Context PC = 33

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>repairDamagesExcept:
Receiver:
	 an UndefinedObject
Arguments:
	 w = an ApplicationWindow 740
Temporaries:
	 .obj = nil
Context PC = 10

----------------------------------------------------------------------
OrderedCollection>>do:
Receiver:
	 an OrderedCollection
Instance Variables:
	 firstIndex = 3
	 lastIndex = 5
Arguments:
	 aBlock = BlockClosure [] in [] in WindowManager>>repairDamagesExcept:
Temporaries:
	 index = 3
Context PC = 17

----------------------------------------------------------------------
optimized [] in WindowManager>>repairDamagesExcept:
Receiver:
	 an UndefinedObject
Temporaries:
	 .self = a WindowManager
	 .obj = nil
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	 a BlockClosure
Instance Variables:
	 method = CompiledBlock [] in WindowManager>>repairDamagesExcept:
	 outerContext = nil
	 copiedValues = an Array[2]
Arguments:
	 anExceptionSelector = ClosedWindowNotification
	 handlerBlock = BlockClosure [] in WindowManager>>repairDamagesExcept:
Context PC = 18

----------------------------------------------------------------------
WindowManager>>repairDamagesExcept:
Receiver:
	 a WindowManager
Instance Variables:
	 windows = an OrderedCollection[3]
	 activeController = nil
	 interruptLock = false
	 outstandingMetaOrDamage = false
	 openInProgress = false
	 eventQueue = an EventQueue
	 baseProcess = a Process in Semaphore>>wait
	 dontFilterEvents = false
Arguments:
	 obj = nil
Context PC = 16

----------------------------------------------------------------------
WindowManager>>repairDamages
Receiver:
	 a WindowManager
Instance Variables:
	 windows = an OrderedCollection[3]
	 activeController = nil
	 interruptLock = false
	 outstandingMetaOrDamage = false
	 openInProgress = false
	 eventQueue = an EventQueue
	 baseProcess = a Process in Semaphore>>wait
	 dontFilterEvents = false
Context PC = 5

----------------------------------------------------------------------
WindowManager>>processNextEvent
Receiver:
	 a WindowManager
Instance Variables:
	 windows = an OrderedCollection[3]
	 activeController = nil
	 interruptLock = false
	 outstandingMetaOrDamage = false
	 openInProgress = false
	 eventQueue = an EventQueue
	 baseProcess = a Process in Semaphore>>wait
	 dontFilterEvents = false
Temporaries:
	 event = an ExposeEvent
Context PC = 12

----------------------------------------------------------------------
optimized [] in [] in WindowManager>>newProcess
Receiver:
	 an UndefinedObject
Temporaries:
	 .self = a WindowManager
Context PC = 13

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	 a BlockClosure
Instance Variables:
	 method = CompiledBlock [] in [] in WindowManager>>newProcess
	 outerContext = nil
	 copiedValues = a WindowManager
Arguments:
	 anExceptionSelector = TerminateException
	 handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess
Context PC = 18

----------------------------------------------------------------------
optimized [] in WindowManager>>newProcess
Receiver:
	 an UndefinedObject
Temporaries:
	 .self = a WindowManager
Context PC = 15

----------------------------------------------------------------------
BlockClosure>>on:do:
Receiver:
	 a BlockClosure
Instance Variables:
	 method = CompiledBlock [] in WindowManager>>newProcess
	 outerContext = nil
	 copiedValues = a WindowManager
Arguments:
	 anExceptionSelector = TerminateException
	 handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority:
Context PC = 18

----------------------------------------------------------------------
optimized [] in Process class>>forBlock:priority:
Receiver:
	 an UndefinedObject
Temporaries:
	 .aBlock = BlockClosure [] in WindowManager>>newProcess
Context PC = 9

#15907 De: matias Castilla <matiascastilla@...>
Fecha: Mié, 13 de Jun, 2007 3:32 pm
Asunto: Re: [objetos] Limites de objetos
matiascastilla
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Gente, yo me quedé con ganas de ir a la reunión,
espero poder asistir a la próxmima.
Elvio, ¿me recordás como era el tema del cardúmen?

Saludos
Matías

--- Elvio Fernandez <elvio.fernandez@...>
escribió:

> Hola gente,
>
> Despues de todo lo que se charlo en la reunion y
> refrescar el caso de el
> famoso cardumen, me hizo recordar algo que hace
> mucho tiempo queria
> desarrollar (a manera de hobie) pero no lo hice
> porque porque asumi que
> tenia que tener una una compu grossa para hacer
> corre el tema.
> La idea era (nada nuevo, nada que no se haya hecho
> ya) intentar desarrollar
> una simulacion para ver como afecta la gravedad a
> los cuerpos en el espacio.
> La intencion no era modelar lo que sucede (de esto
> tambien se charlo en la
> reunion), sino que los objetos en el espacio
> interactuen solos y ver que
> pasaba.
>
> Existe una teoria acerca de como fue el origen del
> sistema solar, y enuncia
> que en los primeros estadios solo habia una gran
> nube de gas y polvo. Gran
> parte de esa materia se fue atrayendo por la
> gravedad misma hasta conformar
> como un especie de planeta que iba creciendo. A
> medida que esto crecia,
> ejercia mas atraccion de la materia circundante
> chupandosela. Este proceso
> continuaba (es un poco mas complejo pero me detengo
> aca porque me desvia de
> la idea) hasta que colapsaba gravitatoriamente y se
> generaba una fusion
> nuclear: el sol. Con toda la materia lejana a este,
> que no era absorvida,
> sucedia lo mismo, se formaron planetoides que por
> tener una masa bastante
> menor al sol no se dio la fusion.
>
> Segun parece en el momento de atraccion de las
> particulas en la formacion
> del planetoide se debia ver un efecto tipo remolino
> algo parecido a la forma
> de la Via Lactea.
>
> Por supuesto que mi idea no era hacer algo tan
> grande. Solo era poner
> alrededor 10000 corpusculos en el espacio y ver que
> pasaba con la accion de
> la gravedad. Supuestamente los corpusculos deberian
> ir aglutinandose en mas
> grandes y, estos macro corpusculos ir atrayendo a
> otros de menor masa y todo
> asi hasta conformar un planetoide.
>
> Al margen de que mi idea es bastante fantasma y que
> probablemente requeria
> de una maquina con bastante procesamiento. Y, que
> ademas abandoné mi ilusion
> de llevarla a cabo, el tema del cardumen aparecio de
> nuevo con otra forma.
>
> ¿Que pasa con un micro corpusculo una vez que se
> pega con otro y pasa a ser
> un corpusculo mas grande?
> Un cardumen es un conjunto de peces pero, un
> cardumen "es" solo si esta
> compuesto de peces. Cosa distinta que se convirtiera
> en un mega pez. ¿Se
> entiende a donde voy?
> Cuando un micro corpusculo se aglutina con otro y
> sucesivamente otros se van
> pegando, la fuerza de gravedad los comprime para
> fusionarlos (no en el
> sentido de fusion nuclear sino en el sentido de
> amalgamiento) se convierten
> en algo mas grande para ser un solo corpusculo.
>
> Aunque no vaya a implementar esto, me parece
> interesante el tema: ¿Estoy
> viendo un fantasma?
>
> Saludos
>
> Elvio
>


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/

#15906 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mié, 13 de Jun, 2007 3:18 pm
Asunto: Re: [objetos] Reunion smalltalking - AGRADECIMIENTO
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Leo, muchachos, lista,
Veo que el que peor salio en las fotos soy yo... como se estarán riendo!
Un inmenso agradecimiento a Elvio y a los que hicieron esfuerzos para ir!
Gracias tambien por el nivel del diálogo que hemos tenido y por la
 buena predisposicion puesta tanto a la hora de entender, como de
 aportar ideas.
Si podemos seguir teniendo este tipo de reuniones, yo estaría muy
 contento pues siento que de esta forma sería posible ahondar
 en los conceptos que queremos estudiar. Y siento además
 que podrán lograrse mas resultados de los que me motivan.
Eso sería realmente valioso.
En resumen: El domingo sentí que estamos frente a la posibilidad
 de lograr algo que no se ha podido lograr con anterioridad
 en Smalltalking.
Bravo por todos los que estubieron allí!
 (y por los que de corazón sufrieron un poco por no poder estar)
hasta pronto,
Ale.
 
 
 
----- Original Message -----
Sent: Tuesday, June 12, 2007 10:27 PM
Subject: RE: [objetos] Reunion smalltalking - AGRADECIMIENTO

Gente!

Primera reunion de muchas esperemos!

Aqui va la foto de la reunion, espero la disfruten...

Elvio te pasaste con los ravioles J EXCELENTES!

 

Hago un resumen de los puntos que quedaron pendientes:

-Reunion para el refactoring del sitio

--Entregables y/o info que podemos subir en la pagina: con esto me refiero a que los entregables que dice Angel es un poco la info que deberiamos discutir y subir a la pagina.

--Seccion “¿De que estamos hablando?” (asi era?)

-Carnets de smalltalking! (para la semana entrante se los envio)

-Creo que nos olvidamos de ver el tema de la asociacion, hay que cubrir algunos cargos que hoy no estan cubiertos...

 

Saludos a todos!

Leo

 


De: smalltalking@... [mailto:smalltalking@...] En nombre de Elvio Fernandez
Enviado el: Lunes, 11 de Junio de 2007 10:00
Para: smalltalking@...
Asunto: Re: [objetos] Reunion smalltalking - AGRADECIMIENTO

 

jejeje!!!

Ocho horas duro la reunion!!! Ocho horas!!!
Qué predisposicion Alejandro! (de todos). Lo destruimos a preguntas.
La proxima reunion sachet de suero y jornada de 12 hrs.  :-)

Saludos

Elvio


#15905 De: Gastón Dall' Oglio <tongadall4@...>
Fecha: Mié, 13 de Jun, 2007 2:55 pm
Asunto: Re: [objetos] Reunion smalltalking - AGRADECIMIENTO
gaston.dallo...
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola gente.

La reunión estuvo muy interesante por cierto, se tocaron solo algunos
temas y como era de esperar quedaron muchas cosas por seguir hablando
sobre lo visto, es que hay tanto para ver y mas si lo tenés a Alejandro
enfrente que es un libro abierto!!! Concuerdo en que le metió unas pilas
bárbaras a pesar de su estado gripal. Y Elvio un anfitrión de 10!

Saludoss


Leonardo De Marco escribió:
>
> Gente!
>
> Primera reunion de muchas esperemos!
>
> Aqui va la foto de la reunion, espero la disfruten...
>
> Elvio te pasaste con los ravioles J EXCELENTES!
>
> Hago un resumen de los puntos que quedaron pendientes:
>
> -Reunion para el refactoring del sitio
>
> --Entregables y/o info que podemos subir en la pagina: con esto me
> refiero a que los entregables que dice Angel es un poco la info que
> deberiamos discutir y subir a la pagina.
>
> --Seccion “¿De que estamos hablando?” (asi era?)
>
> -Carnets de smalltalking! (para la semana entrante se los envio)
>
> -Creo que nos olvidamos de ver el tema de la asociacion, hay que
> cubrir algunos cargos que hoy no estan cubiertos...
>
> Saludos a todos!
>
> Leo






__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas

#15904 De: "Elvio Fernandez" <elvio.fernandez@...>
Fecha: Mié, 13 de Jun, 2007 2:47 pm
Asunto: Limites de objetos
elvisman_780
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola gente,

Despues de todo lo que se charlo en la reunion y refrescar el caso de el famoso cardumen, me hizo recordar algo que hace mucho tiempo queria desarrollar (a manera de hobie) pero no lo hice porque porque asumi que tenia que tener una una compu grossa para hacer corre el tema.
La idea era (nada nuevo, nada que no se haya hecho ya) intentar desarrollar una simulacion para ver como afecta la gravedad a los cuerpos en el espacio.
La intencion no era modelar lo que sucede (de esto tambien se charlo en la reunion), sino que los objetos en el espacio interactuen solos y ver que pasaba.

Existe una teoria acerca de como fue el origen del sistema solar, y enuncia que en los primeros estadios solo habia una gran nube de gas y polvo. Gran parte de esa materia se fue atrayendo por la gravedad misma hasta conformar como un especie de planeta que iba creciendo. A medida que esto crecia, ejercia mas atraccion de la materia circundante chupandosela. Este proceso continuaba (es un poco mas complejo pero me detengo aca porque me desvia de la idea) hasta que colapsaba gravitatoriamente y se generaba una fusion nuclear: el sol. Con toda la materia lejana a este, que no era absorvida, sucedia lo mismo, se formaron planetoides que por tener una masa bastante menor al sol no se dio la fusion.

Segun parece en el momento de atraccion de las particulas en la formacion del planetoide se debia ver un efecto tipo remolino algo parecido a la forma de la Via Lactea.

Por supuesto que mi idea no era hacer algo tan grande. Solo era poner alrededor 10000 corpusculos en el espacio y ver que pasaba con la accion de la gravedad. Supuestamente los corpusculos deberian ir aglutinandose en mas grandes y, estos macro corpusculos ir atrayendo a otros de menor masa y todo asi hasta conformar un planetoide.

Al margen de que mi idea es bastante fantasma y que probablemente requeria de una maquina con bastante procesamiento. Y, que ademas abandoné mi ilusion de llevarla a cabo, el tema del cardumen aparecio de nuevo con otra forma.

¿Que pasa con un micro corpusculo una vez que se pega con otro y pasa a ser un corpusculo mas grande?
Un cardumen es un conjunto de peces pero, un cardumen "es" solo si esta compuesto de peces. Cosa distinta que se convirtiera en un mega pez. ¿Se entiende a donde voy?
Cuando un micro corpusculo se aglutina con otro y sucesivamente otros se van pegando, la fuerza de gravedad los comprime para fusionarlos (no en el sentido de fusion nuclear sino en el sentido de amalgamiento) se convierten en algo mas grande para ser un solo corpusculo.

Aunque no vaya a implementar esto, me parece interesante el tema: ¿Estoy viendo un fantasma?

Saludos

Elvio



#15903 De: "Leonardo De Marco" <leo@...>
Fecha: Mié, 13 de Jun, 2007 1:27 am
Asunto: RE: [objetos] Reunion smalltalking - AGRADECIMIENTO
azraelhamed
Sin conexión Sin conexión
Enviar correo Enviar correo
 

Gente!

Primera reunion de muchas esperemos!

Aqui va la foto de la reunion, espero la disfruten...

Elvio te pasaste con los ravioles J EXCELENTES!

 

Hago un resumen de los puntos que quedaron pendientes:

-Reunion para el refactoring del sitio

--Entregables y/o info que podemos subir en la pagina: con esto me refiero a que los entregables que dice Angel es un poco la info que deberiamos discutir y subir a la pagina.

--Seccion “¿De que estamos hablando?” (asi era?)

-Carnets de smalltalking! (para la semana entrante se los envio)

-Creo que nos olvidamos de ver el tema de la asociacion, hay que cubrir algunos cargos que hoy no estan cubiertos...

 

Saludos a todos!

Leo

 


De: smalltalking@... [mailto:smalltalking@...] En nombre de Elvio Fernandez
Enviado el: Lunes, 11 de Junio de 2007 10:00
Para: smalltalking@...
Asunto: Re: [objetos] Reunion smalltalking - AGRADECIMIENTO

 

jejeje!!!

Ocho horas duro la reunion!!! Ocho horas!!!
Qué predisposicion Alejandro! (de todos). Lo destruimos a preguntas.
La proxima reunion sachet de suero y jornada de 12 hrs.  :-)

Saludos

Elvio


#15902 De: diego rosen <diemros@...>
Fecha: Lun, 11 de Jun, 2007 12:05 pm
Asunto: Busqueda .NET
diemros
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Estimados,
                Le hago llegar la información que una empresa esta buscando desarrolladores en .NET.
                En caso de estar interesados enviar el CV a la siguiente dirección con la remuneración pretendida.
 
 
Saludos
 
Diego


Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!

#15901 De: "Elvio Fernandez" <elvio.fernandez@...>
Fecha: Lun, 11 de Jun, 2007 12:59 pm
Asunto: Re: [objetos] Reunion smalltalking - AGRADECIMIENTO
elvisman_780
Sin conexión Sin conexión
Enviar correo Enviar correo
 
jejeje!!!

Ocho horas duro la reunion!!! Ocho horas!!!
Qué predisposicion Alejandro! (de todos). Lo destruimos a preguntas.
La proxima reunion sachet de suero y jornada de 12 hrs.  :-)

Saludos

Elvio



#15900 De: "Angel \"Java\" Lopez" <ajlopez@...>
Fecha: Lun, 11 de Jun, 2007 11:55 am
Asunto: Reunion smalltalking - AGRADECIMIENTO
ajlopez2000
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola gente!
Ayer se realizo la reunion de Smalltalking. Desde aca, un agracimiento a Elvio, que nos dio de comer, tomar, y el lugar para la reunion. Grande la reunion, muy interesante, abusamos un poco de un Alejandro, engripadisimo, gracias a el tambien por habernos "soportado" por horas.
 
Creo que en la proxima reunion va a poder ir emergiendo algun entregable, ya sea texto, puntos a discutir, lineas a investigar. Algo ya fue surgiendo ayer, pero nos falta bajarlo a un entregable.
 
Nos leemos!
Angel "Java" Lopez

#15899 De: "Juan" <juanlb@...>
Fecha: Dom, 10 de Jun, 2007 1:06 am
Asunto: Re: [objetos] Reunion smalltalking - CONFIRMACION
juanbuligovich
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Ale
Te agradezco el ofrecimiento.
El tema es que no soy muy puntual y menos estando así medio engripado, y no quiero que se queden pendientes de mi llegada...
Nos vemos mañana.
Un abrazo
Juan
 
----- Original Message -----
Sent: Saturday, June 09, 2007 2:22 PM
Subject: Re: [objetos] Reunion smalltalking - CONFIRMACION

Elvio,
Yo tambien voy, y llevo otra gripe en desarrollo :-)
Desde ayer me duele todo el cuerpo,
 pero confío en que no me impedirá ir.
Juan,
Con Leo estamos arreglando para ir juntos, encontrarnos en
 el desayuno cerca de acá (cerca de Cabildo y Monroe)
 y arrancar hacia Retiro.
Quizás podemos coordinar para enganchar el viaje juntos,
 al menos desde Retiro.
hasta pronto,
Ale.
----- Original Message -----
From: Juan
Sent: Saturday, June 09, 2007 3:03 AM
Subject: Re: [objetos] Reunion smalltalking - CONFIRMACION

Elvio.
Sí, voy. Aunque mi estado pregripal podría arruinarme parte de la fiesta.
Igualmente supongo que en lo que se refiere a comida puedo comer por  dos.
Confirmarme a qué hora habría que estar ahí y a qué hora debería tomar el micro (me cuesta horrores madrugar).
Bueno, espero que salga todo bien
Un abrazo
Juan
 
----- Original Message -----
Sent: Friday, June 08, 2007 8:29 PM
Subject: [objetos] Reunion smalltalking - CONFIRMACION

Muchachos,

Pido confirmacion de la gente que va a concurrir asi calculo el volumen de comida.
Hasta el momento de votacion conte a:

Gaston Dall'Oglio
Angle Java Lopez
Leo De Marco
Esteban Robles Luna
Alejandro Reimondo
Juan (????? avisame si venis)




Ale y/o Leo

No se olviden de traer los fuentes del sitio de smalltalking asi me comentan que es lo necesario para agregar/reestructurar, etc.

Ademas hace mas o menos dos meses un chico de aca de La Plata (Sebastian Scribano creo que era) estuvo preguntando por algunas implementaciones de Ale sobre el googleearth (creo) y andaba necesitando una copia de VS, se acuerdan?? traiganse una porque estoy tratando de contactarlo para que venga aunque sea a recibirla, y por que no, me hago yo tambien con una copia.

Bueno chicos desde ya feliz viaje y los espero con una raviolada.

Un abrazo

Elvio



No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.11/838 - Release Date: 07/06/2007 02:21 p.m.


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.13/842 - Release Date: 09/06/2007 10:46 a.m.

#15898 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Sáb, 9 de Jun, 2007 5:22 pm
Asunto: Re: [objetos] Reunion smalltalking - CONFIRMACION
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Elvio,
Yo tambien voy, y llevo otra gripe en desarrollo :-)
Desde ayer me duele todo el cuerpo,
 pero confío en que no me impedirá ir.
Juan,
Con Leo estamos arreglando para ir juntos, encontrarnos en
 el desayuno cerca de acá (cerca de Cabildo y Monroe)
 y arrancar hacia Retiro.
Quizás podemos coordinar para enganchar el viaje juntos,
 al menos desde Retiro.
hasta pronto,
Ale.
----- Original Message -----
From: Juan
Sent: Saturday, June 09, 2007 3:03 AM
Subject: Re: [objetos] Reunion smalltalking - CONFIRMACION

Elvio.
Sí, voy. Aunque mi estado pregripal podría arruinarme parte de la fiesta.
Igualmente supongo que en lo que se refiere a comida puedo comer por  dos.
Confirmarme a qué hora habría que estar ahí y a qué hora debería tomar el micro (me cuesta horrores madrugar).
Bueno, espero que salga todo bien
Un abrazo
Juan
 
----- Original Message -----
Sent: Friday, June 08, 2007 8:29 PM
Subject: [objetos] Reunion smalltalking - CONFIRMACION

Muchachos,

Pido confirmacion de la gente que va a concurrir asi calculo el volumen de comida.
Hasta el momento de votacion conte a:

Gaston Dall'Oglio
Angle Java Lopez
Leo De Marco
Esteban Robles Luna
Alejandro Reimondo
Juan (????? avisame si venis)




Ale y/o Leo

No se olviden de traer los fuentes del sitio de smalltalking asi me comentan que es lo necesario para agregar/reestructurar, etc.

Ademas hace mas o menos dos meses un chico de aca de La Plata (Sebastian Scribano creo que era) estuvo preguntando por algunas implementaciones de Ale sobre el googleearth (creo) y andaba necesitando una copia de VS, se acuerdan?? traiganse una porque estoy tratando de contactarlo para que venga aunque sea a recibirla, y por que no, me hago yo tambien con una copia.

Bueno chicos desde ya feliz viaje y los espero con una raviolada.

Un abrazo

Elvio



No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.11/838 - Release Date: 07/06/2007 02:21 p.m.

#15897 De: "Elvio Fernandez" <elvio.fernandez@...>
Fecha: Sáb, 9 de Jun, 2007 4:10 pm
Asunto: Re: [objetos] Reunion smalltalking - CONFIRMACION
elvisman_780
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Juan,

La idea de la reunion es que comienece con un almuerzo, digamos entre las 12 y la 13 hs. El viaje en los bondis que van por autopista demoran alrededor de 50 min.

Un abrazo

Elvio

El día 9/06/07, Juan <juanlb@...> escribió:

Elvio.
Sí, voy. Aunque mi estado pregripal podría arruinarme parte de la fiesta.
Igualmente supongo que en lo que se refiere a comida puedo comer por  dos.
Confirmarme a qué hora habría que estar ahí y a qué hora debería tomar el micro (me cuesta horrores madrugar).
Bueno, espero que salga todo bien
Un abrazo
Juan
 
----- Original Message -----
Sent: Friday, June 08, 2007 8:29 PM
Subject: [objetos] Reunion smalltalking - CONFIRMACION

Muchachos,

Pido confirmacion de la gente que va a concurrir asi calculo el volumen de comida.
Hasta el momento de votacion conte a:

Gaston Dall'Oglio
Angle Java Lopez
Leo De Marco
Esteban Robles Luna
Alejandro Reimondo
Juan (????? avisame si venis)




Ale y/o Leo

No se olviden de traer los fuentes del sitio de smalltalking asi me comentan que es lo necesario para agregar/reestructurar, etc.

Ademas hace mas o menos dos meses un chico de aca de La Plata (Sebastian Scribano creo que era) estuvo preguntando por algunas implementaciones de Ale sobre el googleearth (creo) y andaba necesitando una copia de VS, se acuerdan?? traiganse una porque estoy tratando de contactarlo para que venga aunque sea a recibirla, y por que no, me hago yo tambien con una copia.

Bueno chicos desde ya feliz viaje y los espero con una raviolada.

Un abrazo

Elvio



No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.11/838 - Release Date: 07/06/2007 02:21 p.m.



#15896 De: "Angel \"Java\" Lopez" <ajlopez@...>
Fecha: Sáb, 9 de Jun, 2007 10:52 am
Asunto: Re: [objetos] Reunion smalltalking - CONFIRMACION
ajlopez2000
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola gente!
Elvio, desde ya, gracias por ofrecer el lugar para la reunion. Yo voy, no llegare a los ravioles... snif... ;-).... pero voy!
 
Nos leemos!
Angel "Java" Lopez
 
----- Original Message -----
Sent: Friday, June 08, 2007 8:29 PM
Subject: [objetos] Reunion smalltalking - CONFIRMACION

Muchachos,

Pido confirmacion de la gente que va a concurrir asi calculo el volumen de comida.
Hasta el momento de votacion conte a:

Gaston Dall'Oglio
Angle Java Lopez
Leo De Marco
Esteban Robles Luna
Alejandro Reimondo
Juan (????? avisame si venis)




Ale y/o Leo

No se olviden de traer los fuentes del sitio de smalltalking asi me comentan que es lo necesario para agregar/reestructurar, etc.

Ademas hace mas o menos dos meses un chico de aca de La Plata (Sebastian Scribano creo que era) estuvo preguntando por algunas implementaciones de Ale sobre el googleearth (creo) y andaba necesitando una copia de VS, se acuerdan?? traiganse una porque estoy tratando de contactarlo para que venga aunque sea a recibirla, y por que no, me hago yo tambien con una copia.

Bueno chicos desde ya feliz viaje y los espero con una raviolada.

Un abrazo

Elvio



#15895 De: "Juan" <juanlb@...>
Fecha: Sáb, 9 de Jun, 2007 6:03 am
Asunto: Re: [objetos] Reunion smalltalking - CONFIRMACION
juanbuligovich
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Elvio.
Sí, voy. Aunque mi estado pregripal podría arruinarme parte de la fiesta.
Igualmente supongo que en lo que se refiere a comida puedo comer por  dos.
Confirmarme a qué hora habría que estar ahí y a qué hora debería tomar el micro (me cuesta horrores madrugar).
Bueno, espero que salga todo bien
Un abrazo
Juan
 
----- Original Message -----
Sent: Friday, June 08, 2007 8:29 PM
Subject: [objetos] Reunion smalltalking - CONFIRMACION

Muchachos,

Pido confirmacion de la gente que va a concurrir asi calculo el volumen de comida.
Hasta el momento de votacion conte a:

Gaston Dall'Oglio
Angle Java Lopez
Leo De Marco
Esteban Robles Luna
Alejandro Reimondo
Juan (????? avisame si venis)




Ale y/o Leo

No se olviden de traer los fuentes del sitio de smalltalking asi me comentan que es lo necesario para agregar/reestructurar, etc.

Ademas hace mas o menos dos meses un chico de aca de La Plata (Sebastian Scribano creo que era) estuvo preguntando por algunas implementaciones de Ale sobre el googleearth (creo) y andaba necesitando una copia de VS, se acuerdan?? traiganse una porque estoy tratando de contactarlo para que venga aunque sea a recibirla, y por que no, me hago yo tambien con una copia.

Bueno chicos desde ya feliz viaje y los espero con una raviolada.

Un abrazo

Elvio



No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.11/838 - Release Date: 07/06/2007 02:21 p.m.

#15894 De: Gastón Dall' Oglio <tongadall4@...>
Fecha: Sáb, 9 de Jun, 2007 1:16 am
Asunto: Re: [objetos] Reunion smalltalking - CONFIRMACION
gaston.dallo...
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Elvio Fernandez escribió:
> Muchachos,
>
> Pido confirmacion de la gente que va a concurrir asi calculo el
> volumen de comida.
> Hasta el momento de votacion conte a:
>
> Gaston Dall'Oglio
> Angle Java Lopez
> Leo De Marco
> Esteban Robles Luna
> Alejandro Reimondo
> Juan (????? avisame si venis)
>
>
Presente! Yo voy, ya estudié toda la implementación de la máquina
virtual por si me tiras una pregunta :-P
>
> Ale y/o Leo
>
> No se olviden de traer los fuentes del sitio de smalltalking asi me
> comentan que es lo necesario para agregar/reestructurar, etc.
Si puedo doy una mano.
>
> Ademas hace mas o menos dos meses un chico de aca de La Plata
> (Sebastian Scribano creo que era) estuvo preguntando por algunas
> implementaciones de Ale sobre el googleearth (creo) y andaba
> necesitando una copia de VS, se acuerdan?? traiganse una porque estoy
> tratando de contactarlo para que venga aunque sea a recibirla, y por
> que no, me hago yo tambien con una copia.
>
Si se puede, yo también quisiera una copia, he tratado de bajarlo en
internet y no lo consigo. Tengo entendido que Cincom lo  adquirió y lo
hizo desaparecer....
>
> Bueno chicos desde ya feliz viaje y los espero con una raviolada.
>
> Un abrazo
>
> Elvio
>
Un abrazo Elvio, nos vemos el domingo.

PD: yo llevo un grabador por si se quiere grabar la reunión.






__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas

#15893 De: "Elvio Fernandez" <elvio.fernandez@...>
Fecha: Vie, 8 de Jun, 2007 11:29 pm
Asunto: Reunion smalltalking - CONFIRMACION
elvisman_780
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Muchachos,

Pido confirmacion de la gente que va a concurrir asi calculo el volumen de comida.
Hasta el momento de votacion conte a:

Gaston Dall'Oglio
Angle Java Lopez
Leo De Marco
Esteban Robles Luna
Alejandro Reimondo
Juan (????? avisame si venis)




Ale y/o Leo

No se olviden de traer los fuentes del sitio de smalltalking asi me comentan que es lo necesario para agregar/reestructurar, etc.

Ademas hace mas o menos dos meses un chico de aca de La Plata (Sebastian Scribano creo que era) estuvo preguntando por algunas implementaciones de Ale sobre el googleearth (creo) y andaba necesitando una copia de VS, se acuerdan?? traiganse una porque estoy tratando de contactarlo para que venga aunque sea a recibirla, y por que no, me hago yo tambien con una copia.

Bueno chicos desde ya feliz viaje y los espero con una raviolada.

Un abrazo

Elvio



#15892 De: kikote gregoris <kikogregoris@...>
Fecha: Vie, 8 de Jun, 2007 12:42 pm
Asunto: Re: [objetos] OFFTOPIC: Interpolacion de la Cámara
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Elvio
 
 
Lo que trato de hacer, es la típica  cámara en tercera persona de todo juego de carreras de autos.
 
Todo lo que tengas o puedas comentar sobre el tema será bienvenido, sobre si hacerlo publico o privado, creo que eso debería decidirlo Ale o Leo  que son los moderadores de la lista.
Yo tampoco deseo abusar de la lista, es por eso que lo puese como OFFTOPIC, además de las pocas ganas de colaborar del foro de Games
 
Saludos kiko


Elvio Fernandez <elvio.fernandez@...> escribió:
Hola kiko,

Lo que no entiendo es como funciona tu camara. Es decir, imaginate que tenes una nave que se mueve libremente en el espacio y tengo una camara enganchada a la cola. Cada vez que la nave rote o se desplase la camara deberia calcular el delta del desplazamiento y luego el delta (por decirlo de alguna manera) de la rotacion y actualizarlo en la camara.

Otra cosa seria que tu camara este enganchada a la nave pero que ademas de seguirla pueda rotar libremente alrededor de la nave. Ver por encima, por los costados, por debajo, etc.
Te comento esto porque la implementacion que pegaste de Ogre utliza Quaternions y generalmente, estos, se usan para eso (tambien se pueden utilizar para otras cosas), para realizar rotaciones suaves.
Intuyo era esto a lo que se referian los del foro.

Para no abusar de la lista voy a cortar aca. Si interesa puedo explicar un poquito la idea de las rotaciones con quaterniones y la interpolaciones. Ademas, tengo algo de material sobre el tema.

Saludos

Elvio



Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!

#15891 De: kikote gregoris <kikogregoris@...>
Fecha: Vie, 8 de Jun, 2007 12:42 pm
Asunto: Re: [objetos] OFFTOPIC: Interpolacion de la Cámara
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Ale
 
You wrote:
Los "saltos", los observaste en la implementación de la pecera con Genesis3D ?
 
Hay no es tan notorio pues la velocidad de los objetos no es tan grande.
 
You wrote:
Con ese mismo modelo e implementación, estas buscando que no se observe?
O lo estas buscando sobre otra implementación? (y/o sobre otro modelo 3D)
 
Ese mismo modelo lo porte a MT para no invertir mucho tiempo en ese punto y me di cuenta del problema de inmediato.
 
 
Como parte de mi aprendizaje sobre newton + genesis3D, estoy utilizando un modelo de vehiculo que provee NGD, es decir este provee lo que se llama un VehicleJoint.
Es te VehicleJoint es solo una interfase que simula el comportamiento de un vehiculo.
 
Como dijo julio jerez autor de NGD, el  VehicleJoint no es una lámpara  mágica  que se frote y tengo un vehiculo, pero si proporciona la parte mas difícil de hacer.
 
Ahora volviendo a la cámara, esta es la respuesta concreta en el foro de Vjuegos:
 
El problema se debe a que como vas calculando la posición de la cámara a cada ciclo con respecto a tu objeto, cualquier movimiento minimo influirá aun cuando sea algo muy rápido, no se en donde tienes la cámara en relación con tu objeto, pero por ejemplo si estuvieras orbitándola a cierta distancia de tu auto, cualquier mínima variación en el ángulo de este se traduciría en varias unidades de medida para la cámara.

Si el problema fuera este, lo mejor que se puede hacer es no mover la cámara inmediatamente, sino calcular cual sería ese punto final donde quieres que se coloque y mover la cámara con interpolación y aceleración no lineal, asi la cámara tendría un retrazo al moverse y tendrías un movimiento suave en todo momento.
 
Que por lo que entiendo es algo similar a lo que vos decís, sobre el resorte entre la cámara y el vehiculo.
 
El punto es que no entiendo  en que parte de la implementación de OgreNewton que pegué esta la famosa interpolación y aceleración no lineal.
 
Debo decir que estoy un poco oxidado sobre los temas de calculo
 
Saludos kiko


"Alejandro F. Reimondo" <aleReimondo@...> escribió:
kiko,
Los "saltos", los observaste en la implementación de la pecera con Genesis3D ?
Con ese mismo modelo e implementación, estas buscando que no se observe?
O lo estas buscando sobre otra implementación? (y/o sobre otro modelo 3D)
 
Segun entiendo, si el objeto a seguir se mueve a saltos (en lineas rectas
 y/o doblando bruscamente) esto se traducirá a la cámara que toma
 su posición del objeto a seguir.
Si los objetos se te mueven bruscamente quizás deberás relajar la
 aceleración de la cámara, es decir, pegar un resorte entre
 la cámara y el objeto, para suavizar sus movimientos.
Así trataría de resolverlo yo, de todas formas, creo oportuno decirte que
 sería recomendable revisar el modelo de los objetos que se están
 moviendo para ver si tu modelo los mueve muy bruscamente y si es
 factible modificar el modelo en caso de ser así.
 
suerte!
Ale.
 
----- Original Message -----
Sent: Thursday, June 07, 2007 4:29 PM
Subject: [objetos] OFFTOPIC: Interpolacion de la Cámara

Hola Gente
 
Disculpen que pregunte por este tema que no esta relacionado directamente con ST, el punto es que no puedo entender donde esta el secreto para tener una cámara que siga a mi vehiculo de manera correcta.
Yo implemente la solución como la tiene Ale en Genesis3D, de primer momento encontré que el movimiento no era fluido, es decir la cámara va dando pequeños saltos según aumenta la velocidad.
En aquel momento no quise invertir tiempo en este punto y lo deje como estaba.
Ahora quiero mejorar esto y no encuentro la manera de hacerlo.
Preguntando en el foro Vjuegos.org me comentaron que tenía que hacer interpolación para obtener un movimiento fluido.
Me puse a investigar de qué se trata la interpolación de la que hablaban, pero no encontré gran cosa.
Por lo que entiendo interpolar es encontrar un punto en un intervalo a partir de sus extremos, en mi caso la posición de la cámara y el vehiculo.
Luego encontré como lo hacen en la demo de NewtonOgre, pero sigo sin entender donde esta el secreto.
Se supone que el secreto esta en como calculo el punto a moverme, ya que se supone que eso es lo que provoca los pequeños saltos.
Este es la forma de ALE:
 
 
GenesisBoids>>followSelected
" Private - Follow the selected object. "
| point xForm distance |
self selected isNil ifTrue: [ ^self ].
distance := self scale / 5 * self selected body boundingBox diagonal length negated.
xForm := self selected body xForm.
point := xForm position
add: xForm in
scaledBy: distance.
point y: 107 * self scale // 5 + point y. "overhead offset"
self navigator xForm:
(point xFormPointingTo: xForm position)
GenesisVector3D>>xFormPointingTo: target
" Returns a transform placed at the receiver for looking to target. "
^self xFormPointingTo: target at: self
GenesisVector3D>>xFormPointingTo: target at: location
" Returns a transform placed at location looking from the receiver to target. "
| vertical result vector temp |
vertical := self species from: #(0 1 0). "Create straight up vector."
"Create the source vector, fudging it if its coplanar to the comparison vector."
vector := self - target.
(vertical x = vector x and: [ vertical z = vector z ])
ifTrue: [ vertical x: vertical x + 1 ].
"Set the IN vector."
result := GenesisXForm identity.
vector normalize.
result az: vector x; bz: vector y; cz: vector z; yourself.
"Use it with the IN vector to get the RIGHT vector."
temp := vertical crossProduct: vector.
temp normalize.
"Put the RIGHT vector in the matrix."
result ax: temp x; bx: temp y; cx: temp z; yourself.
"Use the RIGHT vector with the IN vector to get the real UP vector."
vertical := vector crossProduct: temp.
vertical normalize.
"Put the UP vector in the matrix."
result ay: vertical x; by: vertical y; cy: vertical z; yourself.
"Put the translation in."
result translation: location.
^result
 
Esta es la implementación de NewtonOgre:
 
void
FollowCamera::update( Ogre::Real deltat )
{
// first, get the ideal goal position.
Ogre::Vector3 mypos;
Ogre::Vector3 goalpos;
Ogre::Vector3 togoal;
// if no goal node is assigned, we can`t move.
if (!mGoalNode)
return;
mypos = mCamera->getPosition();
goalpos = mGoalNode->getWorldPosition();
//first get the Y offset and the XZ plane offset from the pitch angle.
Ogre::Real x, y, z, xz;
y = sin( mPitch.valueRadians() ) * mDist;
xz = cos( mPitch.valueRadians() ) * mDist;
// now get the x any z values from the Yaw angle.
x = sin( mYaw.valueRadians() ) * xz;
z = cos( mYaw.valueRadians() ) * xz;
if (mJustFollow)
{
// in this case, don't worry about the orientation of the GoalNode.
goalpos += Ogre::Vector3(x,y,z);
}
else
{
//take the orientation of the GoalNode into account!
Ogre::Quaternion orient = mGoalNode->getWorldOrientation();
Ogre::Matrix3 mat;
orient.ToRotationMatrix( mat );
Ogre::Vector3 xdir = mat.GetColumn(0);
xdir.y = 0.0;
xdir.normalise();
mat.FromEulerAnglesXYZ(Ogre::Radian(0),
Ogre::Math::ATan2(-xdir.z, xdir.x), Ogre::Radian(0) );
orient.FromRotationMatrix( mat );
goalpos += (orient * Ogre::Vector3(x,y,z));
}
// move toward the goal position!
if (deltat > mMaxDelta) { deltat = mMaxDelta; }
togoal = (goalpos - mypos).normalisedCopy() * (goalpos - mypos).length() * 10 * deltat;
if (togoal.squaredLength() > (goalpos - mypos).squaredLength())
togoal = (goalpos - mypos);
mypos += togoal;
if (mypos.y < -3.5 ) { mypos.y = -3.5; }
mCamera->setPosition( mypos );
// look
Ogre::Vector3 goallook;
if (mLookNode)
goallook = mLookNode->getWorldPosition();
else
goallook = mGoalNode->getWorldPosition();
Ogre::Vector3 tolook = (goallook - mLookVec) * (10*deltat);
mLookVec += tolook;
mCamera->lookAt( mLookVec );
}
 
Cualquier comentario o aporte será bienvenido.
 
Saludos kiko

Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!


Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!

#15890 De: "Elvio Fernandez" <elvio.fernandez@...>
Fecha: Jue, 7 de Jun, 2007 11:56 pm
Asunto: Re: [objetos] OFFTOPIC: Interpolacion de la Cámara
elvisman_780
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola kiko,

Lo que no entiendo es como funciona tu camara. Es decir, imaginate que tenes una nave que se mueve libremente en el espacio y tengo una camara enganchada a la cola. Cada vez que la nave rote o se desplase la camara deberia calcular el delta del desplazamiento y luego el delta (por decirlo de alguna manera) de la rotacion y actualizarlo en la camara.

Otra cosa seria que tu camara este enganchada a la nave pero que ademas de seguirla pueda rotar libremente alrededor de la nave. Ver por encima, por los costados, por debajo, etc.
Te comento esto porque la implementacion que pegaste de Ogre utliza Quaternions y generalmente, estos, se usan para eso (tambien se pueden utilizar para otras cosas), para realizar rotaciones suaves.
Intuyo era esto a lo que se referian los del foro.

Para no abusar de la lista voy a cortar aca. Si interesa puedo explicar un poquito la idea de las rotaciones con quaterniones y la interpolaciones. Ademas, tengo algo de material sobre el tema.

Saludos

Elvio


#15889 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Jue, 7 de Jun, 2007 10:50 pm
Asunto: Re: [objetos] Opentalk en arquitectura cliente-servidor
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Lautaro,
 
>El mensaje que nos da es: "Must be running to send remote messages!"
 
Quien te lo dá? (cual es el objeto receptor)
Podés mandar el vuelco del stack (walkback), para tener una idea
 de que estaba ocurriendo cuando todo explotó?
Creo que el walkback nos sería de más utilidad que
 lo que estás haciendo para enchufar cliente y servidor...

>Una suposicion es que se haya cerrado la conexión,
> pero nosotros no lo hicimos.
 
Otra suposición es que debido, por ejemplo, a un error
 en la noticicación de cambios ocurre una situación
 recursiva de change/updates... y eso hace que
 se genere un pingpong de mensajes... (deberías sentir
 que ambos equipos zapatean y/o se les consume memoria)
 que al no resolverse, termina dando un error por falta
 de respuesta.
 (quizás no esta cerrda la conexión, sino que solo no se
 recibió una respuesta en el tiempo esperado)
 
>Además leyendo "OpentalkDevGuide" leímos que por defecto
> la conexión se mantiene durante 20 minutos.
>Alguien sabe cual puede ser el problema?,
 
El error que te comento es muy frecuente...
 ojalá que sea ese :-)
 
hasta pronto,
Ale.
 
 
----- Original Message -----
Sent: Thursday, June 07, 2007 5:36 PM
Subject: [objetos] Opentalk en arquitectura cliente-servidor

Hola Lista, somos dos chicos que estan estudiando en la facultad de informática de la UNLP y decidimos hacer para una materia un juego y ahora lo queremos hacer andar en una red. Averiguando con gente que ha hecho programas de este estilo decidimos hacerlo usando opentalk. Pero tenemos unos problemillas.

Cuento más o menos para que se entienda:
Tenemos un Servidor que está escuchando en el puerto 3000 y un cliente que está en el 5000.
Levantamos un servidor y un cliente con sus vistas:
1)AppServidor abrirConServidorRemoto: Servidor new.
2) AppEleccionJugador abrirRemoto.

Donde 1) exporta el servidor de la sig manera:
self conexion: (Opentalk.RequestBroker newStstTcpAt:
(IPSocketAddress hostAddress: #[127 0 0 1] port: 3000))
self conexion start.
self servidor: unServidor.
self conexion objectAdaptor export: self servidor oid: #server.
y 2) es en la ventana cliente y hacemos:
self conexion: ( Opentalk.RequestBroker newStstTcpAt:(IPSocketAddress hostAddress: #[127 0 0 1] port: 5000)).
self conexion start.
self servidor:(self conexion remoteObjectOn: (IPSocketAddress hostAddress: #[127 0 0 1] port: 3000) oid: #server).


Bien, el problema es el siguiente:

Se instancia correcto la ventana del servidor y la ventana del cliente. En la ventana del cliente, están los personajes que son traídos desde el servidor, y por lo tanto la conexión sabemos que se hizo con éxito. Por lo menos para mostrar los personajes del juego.

Una vez en el juego con cualquier personaje:
 después de un tiempo (creemos que es cuando redibuja)
o         cuando se mueve otro personaje.
o         cuando nos movemos nosotros
ocurre que se rompe todo. El mensaje que nos da es: "Must be running to send remote messages!"
Una suposicion es que se haya cerrado la conexión, pero nosotros no lo hicimos. Además leyendo "OpentalkDevGuide" leímos que por defecto la conexión se mantiene durante 20 minutos.
Alguien sabe cual puede ser el problema?, espero que se haya entendido algo, cualquier cosa avisen y volvemos a explicar nuestro problema de otra forma.

Muchas gracias por todo.
Nos vemos
Santiago y Lautaro


--
Luke LAut SkyFernadezWalker

#15888 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Jue, 7 de Jun, 2007 10:41 pm
Asunto: Re: [objetos] OFFTOPIC: Interpolacion de la Cámara
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
kiko,
Los "saltos", los observaste en la implementación de la pecera con Genesis3D ?
Con ese mismo modelo e implementación, estas buscando que no se observe?
O lo estas buscando sobre otra implementación? (y/o sobre otro modelo 3D)
 
Segun entiendo, si el objeto a seguir se mueve a saltos (en lineas rectas
 y/o doblando bruscamente) esto se traducirá a la cámara que toma
 su posición del objeto a seguir.
Si los objetos se te mueven bruscamente quizás deberás relajar la
 aceleración de la cámara, es decir, pegar un resorte entre
 la cámara y el objeto, para suavizar sus movimientos.
Así trataría de resolverlo yo, de todas formas, creo oportuno decirte que
 sería recomendable revisar el modelo de los objetos que se están
 moviendo para ver si tu modelo los mueve muy bruscamente y si es
 factible modificar el modelo en caso de ser así.
 
suerte!
Ale.
 
----- Original Message -----
Sent: Thursday, June 07, 2007 4:29 PM
Subject: [objetos] OFFTOPIC: Interpolacion de la Cámara

Hola Gente
 
Disculpen que pregunte por este tema que no esta relacionado directamente con ST, el punto es que no puedo entender donde esta el secreto para tener una cámara que siga a mi vehiculo de manera correcta.
Yo implemente la solución como la tiene Ale en Genesis3D, de primer momento encontré que el movimiento no era fluido, es decir la cámara va dando pequeños saltos según aumenta la velocidad.
En aquel momento no quise invertir tiempo en este punto y lo deje como estaba.
Ahora quiero mejorar esto y no encuentro la manera de hacerlo.
Preguntando en el foro Vjuegos.org me comentaron que tenía que hacer interpolación para obtener un movimiento fluido.
Me puse a investigar de qué se trata la interpolación de la que hablaban, pero no encontré gran cosa.
Por lo que entiendo interpolar es encontrar un punto en un intervalo a partir de sus extremos, en mi caso la posición de la cámara y el vehiculo.
Luego encontré como lo hacen en la demo de NewtonOgre, pero sigo sin entender donde esta el secreto.
Se supone que el secreto esta en como calculo el punto a moverme, ya que se supone que eso es lo que provoca los pequeños saltos.
Este es la forma de ALE:
 
 
GenesisBoids>>followSelected
" Private - Follow the selected object. "
| point xForm distance |
self selected isNil ifTrue: [ ^self ].
distance := self scale / 5 * self selected body boundingBox diagonal length negated.
xForm := self selected body xForm.
point := xForm position
add: xForm in
scaledBy: distance.
point y: 107 * self scale // 5 + point y. "overhead offset"
self navigator xForm:
(point xFormPointingTo: xForm position)
GenesisVector3D>>xFormPointingTo: target
" Returns a transform placed at the receiver for looking to target. "
^self xFormPointingTo: target at: self
GenesisVector3D>>xFormPointingTo: target at: location
" Returns a transform placed at location looking from the receiver to target. "
| vertical result vector temp |
vertical := self species from: #(0 1 0). "Create straight up vector."
"Create the source vector, fudging it if its coplanar to the comparison vector."
vector := self - target.
(vertical x = vector x and: [ vertical z = vector z ])
ifTrue: [ vertical x: vertical x + 1 ].
"Set the IN vector."
result := GenesisXForm identity.
vector normalize.
result az: vector x; bz: vector y; cz: vector z; yourself.
"Use it with the IN vector to get the RIGHT vector."
temp := vertical crossProduct: vector.
temp normalize.
"Put the RIGHT vector in the matrix."
result ax: temp x; bx: temp y; cx: temp z; yourself.
"Use the RIGHT vector with the IN vector to get the real UP vector."
vertical := vector crossProduct: temp.
vertical normalize.
"Put the UP vector in the matrix."
result ay: vertical x; by: vertical y; cy: vertical z; yourself.
"Put the translation in."
result translation: location.
^result
 
Esta es la implementación de NewtonOgre:
 
void
FollowCamera::update( Ogre::Real deltat )
{
// first, get the ideal goal position.
Ogre::Vector3 mypos;
Ogre::Vector3 goalpos;
Ogre::Vector3 togoal;
// if no goal node is assigned, we can`t move.
if (!mGoalNode)
return;
mypos = mCamera->getPosition();
goalpos = mGoalNode->getWorldPosition();
//first get the Y offset and the XZ plane offset from the pitch angle.
Ogre::Real x, y, z, xz;
y = sin( mPitch.valueRadians() ) * mDist;
xz = cos( mPitch.valueRadians() ) * mDist;
// now get the x any z values from the Yaw angle.
x = sin( mYaw.valueRadians() ) * xz;
z = cos( mYaw.valueRadians() ) * xz;
if (mJustFollow)
{
// in this case, don't worry about the orientation of the GoalNode.
goalpos += Ogre::Vector3(x,y,z);
}
else
{
//take the orientation of the GoalNode into account!
Ogre::Quaternion orient = mGoalNode->getWorldOrientation();
Ogre::Matrix3 mat;
orient.ToRotationMatrix( mat );
Ogre::Vector3 xdir = mat.GetColumn(0);
xdir.y = 0.0;
xdir.normalise();
mat.FromEulerAnglesXYZ(Ogre::Radian(0),
Ogre::Math::ATan2(-xdir.z, xdir.x), Ogre::Radian(0) );
orient.FromRotationMatrix( mat );
goalpos += (orient * Ogre::Vector3(x,y,z));
}
// move toward the goal position!
if (deltat > mMaxDelta) { deltat = mMaxDelta; }
togoal = (goalpos - mypos).normalisedCopy() * (goalpos - mypos).length() * 10 * deltat;
if (togoal.squaredLength() > (goalpos - mypos).squaredLength())
togoal = (goalpos - mypos);
mypos += togoal;
if (mypos.y < -3.5 ) { mypos.y = -3.5; }
mCamera->setPosition( mypos );
// look
Ogre::Vector3 goallook;
if (mLookNode)
goallook = mLookNode->getWorldPosition();
else
goallook = mGoalNode->getWorldPosition();
Ogre::Vector3 tolook = (goallook - mLookVec) * (10*deltat);
mLookVec += tolook;
mCamera->lookAt( mLookVec );
}
 
Cualquier comentario o aporte será bienvenido.
 
Saludos kiko


Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!

#15887 De: "Lautaro Fernández" <evaklo@...>
Fecha: Jue, 7 de Jun, 2007 8:36 pm
Asunto: Opentalk en arquitectura cliente-servidor
nodoycuentas
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Lista, somos dos chicos que estan estudiando en la facultad de informática de la UNLP y decidimos hacer para una materia un juego y ahora lo queremos hacer andar en una red. Averiguando con gente que ha hecho programas de este estilo decidimos hacerlo usando opentalk. Pero tenemos unos problemillas.

Cuento más o menos para que se entienda:
Tenemos un Servidor que está escuchando en el puerto 3000 y un cliente que está en el 5000.
Levantamos un servidor y un cliente con sus vistas:
1)AppServidor abrirConServidorRemoto: Servidor new.
2) AppEleccionJugador abrirRemoto.

Donde 1) exporta el servidor de la sig manera:
self conexion: (Opentalk.RequestBroker newStstTcpAt:
(IPSocketAddress hostAddress: #[127 0 0 1] port: 3000))
self conexion start.
self servidor: unServidor.
self conexion objectAdaptor export: self servidor oid: #server.
y 2) es en la ventana cliente y hacemos:
self conexion: ( Opentalk.RequestBroker newStstTcpAt:(IPSocketAddress hostAddress: #[127 0 0 1] port: 5000)).
self conexion start.
self servidor:(self conexion remoteObjectOn: (IPSocketAddress hostAddress: #[127 0 0 1] port: 3000) oid: #server).


Bien, el problema es el siguiente:

Se instancia correcto la ventana del servidor y la ventana del cliente. En la ventana del cliente, están los personajes que son traídos desde el servidor, y por lo tanto la conexión sabemos que se hizo con éxito. Por lo menos para mostrar los personajes del juego.

Una vez en el juego con cualquier personaje:
 después de un tiempo (creemos que es cuando redibuja)
o         cuando se mueve otro personaje.
o         cuando nos movemos nosotros
ocurre que se rompe todo. El mensaje que nos da es: "Must be running to send remote messages!"
Una suposicion es que se haya cerrado la conexión, pero nosotros no lo hicimos. Además leyendo "OpentalkDevGuide" leímos que por defecto la conexión se mantiene durante 20 minutos.
Alguien sabe cual puede ser el problema?, espero que se haya entendido algo, cualquier cosa avisen y volvemos a explicar nuestro problema de otra forma.

Muchas gracias por todo.
Nos vemos
Santiago y Lautaro


--
Luke LAut SkyFernadezWalker

#15886 De: kikote gregoris <kikogregoris@...>
Fecha: Jue, 7 de Jun, 2007 7:29 pm
Asunto: OFFTOPIC: Interpolacion de la Cámara
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Gente
 
Disculpen que pregunte por este tema que no esta relacionado directamente con ST, el punto es que no puedo entender donde esta el secreto para tener una cámara que siga a mi vehiculo de manera correcta.
Yo implemente la solución como la tiene Ale en Genesis3D, de primer momento encontré que el movimiento no era fluido, es decir la cámara va dando pequeños saltos según aumenta la velocidad.
En aquel momento no quise invertir tiempo en este punto y lo deje como estaba.
Ahora quiero mejorar esto y no encuentro la manera de hacerlo.
Preguntando en el foro Vjuegos.org me comentaron que tenía que hacer interpolación para obtener un movimiento fluido.
Me puse a investigar de qué se trata la interpolación de la que hablaban, pero no encontré gran cosa.
Por lo que entiendo interpolar es encontrar un punto en un intervalo a partir de sus extremos, en mi caso la posición de la cámara y el vehiculo.
Luego encontré como lo hacen en la demo de NewtonOgre, pero sigo sin entender donde esta el secreto.
Se supone que el secreto esta en como calculo el punto a moverme, ya que se supone que eso es lo que provoca los pequeños saltos.
Este es la forma de ALE:
 
 
GenesisBoids>>followSelected
" Private - Follow the selected object. "
| point xForm distance |
self selected isNil ifTrue: [ ^self ].
distance := self scale / 5 * self selected body boundingBox diagonal length negated.
xForm := self selected body xForm.
point := xForm position
add: xForm in
scaledBy: distance.
point y: 107 * self scale // 5 + point y. "overhead offset"
self navigator xForm:
(point xFormPointingTo: xForm position)
GenesisVector3D>>xFormPointingTo: target
" Returns a transform placed at the receiver for looking to target. "
^self xFormPointingTo: target at: self
GenesisVector3D>>xFormPointingTo: target at: location
" Returns a transform placed at location looking from the receiver to target. "
| vertical result vector temp |
vertical := self species from: #(0 1 0). "Create straight up vector."
"Create the source vector, fudging it if its coplanar to the comparison vector."
vector := self - target.
(vertical x = vector x and: [ vertical z = vector z ])
ifTrue: [ vertical x: vertical x + 1 ].
"Set the IN vector."
result := GenesisXForm identity.
vector normalize.
result az: vector x; bz: vector y; cz: vector z; yourself.
"Use it with the IN vector to get the RIGHT vector."
temp := vertical crossProduct: vector.
temp normalize.
"Put the RIGHT vector in the matrix."
result ax: temp x; bx: temp y; cx: temp z; yourself.
"Use the RIGHT vector with the IN vector to get the real UP vector."
vertical := vector crossProduct: temp.
vertical normalize.
"Put the UP vector in the matrix."
result ay: vertical x; by: vertical y; cy: vertical z; yourself.
"Put the translation in."
result translation: location.
^result
 
Esta es la implementación de NewtonOgre:
 
void
FollowCamera::update( Ogre::Real deltat )
{
// first, get the ideal goal position.
Ogre::Vector3 mypos;
Ogre::Vector3 goalpos;
Ogre::Vector3 togoal;
// if no goal node is assigned, we can`t move.
if (!mGoalNode)
return;
mypos = mCamera->getPosition();
goalpos = mGoalNode->getWorldPosition();
//first get the Y offset and the XZ plane offset from the pitch angle.
Ogre::Real x, y, z, xz;
y = sin( mPitch.valueRadians() ) * mDist;
xz = cos( mPitch.valueRadians() ) * mDist;
// now get the x any z values from the Yaw angle.
x = sin( mYaw.valueRadians() ) * xz;
z = cos( mYaw.valueRadians() ) * xz;
if (mJustFollow)
{
// in this case, don't worry about the orientation of the GoalNode.
goalpos += Ogre::Vector3(x,y,z);
}
else
{
//take the orientation of the GoalNode into account!
Ogre::Quaternion orient = mGoalNode->getWorldOrientation();
Ogre::Matrix3 mat;
orient.ToRotationMatrix( mat );
Ogre::Vector3 xdir = mat.GetColumn(0);
xdir.y = 0.0;
xdir.normalise();
mat.FromEulerAnglesXYZ(Ogre::Radian(0),
Ogre::Math::ATan2(-xdir.z, xdir.x), Ogre::Radian(0) );
orient.FromRotationMatrix( mat );
goalpos += (orient * Ogre::Vector3(x,y,z));
}
// move toward the goal position!
if (deltat > mMaxDelta) { deltat = mMaxDelta; }
togoal = (goalpos - mypos).normalisedCopy() * (goalpos - mypos).length() * 10 * deltat;
if (togoal.squaredLength() > (goalpos - mypos).squaredLength())
togoal = (goalpos - mypos);
mypos += togoal;
if (mypos.y < -3.5 ) { mypos.y = -3.5; }
mCamera->setPosition( mypos );
// look
Ogre::Vector3 goallook;
if (mLookNode)
goallook = mLookNode->getWorldPosition();
else
goallook = mGoalNode->getWorldPosition();
Ogre::Vector3 tolook = (goallook - mLookVec) * (10*deltat);
mLookVec += tolook;
mCamera->lookAt( mLookVec );
}
 
Cualquier comentario o aporte será bienvenido.
 
Saludos kiko


Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!

#15885 De: "Leonardo De Marco" <leo@...>
Fecha: Jue, 7 de Jun, 2007 3:57 am
Asunto: RE: [objetos] Re: Reunion smalltalking - Direccion, Mapa
azraelhamed
Sin conexión Sin conexión
Enviar correo Enviar correo
 

Gente, cuenta regresiva, estos ultimos dias estuve a full, espero que funke todo asi les puedo mostrar el utra mini ejemplo de seaside J


Saludos,

Leo

 


De: smalltalking@... [mailto:smalltalking@...] En nombre de Gastón Dall' Oglio
Enviado el: Miércoles, 06 de Junio de 2007 11:44
Para: smalltalking@...
Asunto: Re: [objetos] Re: Reunion smalltalking - Direccion, Mapa

 

Hola.

A mí tb me llegó el mapa. Si mirás en la lista no lo ves, solo ves que
había un adjunto, oprque para no oupar espacio en el grupo los adjuntos
no quedan (al menos eso tengo entendido), pero si son enviados a los
integragantes del grupo.
Por otro lado, buenísimo el mapa che, gracias. Una pregunta nomás, el
cole Capital-La Plata que tomamos para pasar por donde indicás es el que
va por Autopista o por Centenario?

Con respecto a los temas para la reunión, creo que los mas importantes
son los que se tiraron hace un tiempo, que nos dan una idea de que es
Smalltalking y su objeto, y los demás como digo alguien irán surgiendo
mientras se desarrolle la charla. En charlas posteriores se pueden
tratar de manera mas ordenada, con lecturas previas, materiales
preparados, etc. Si vamos con mucho equipaje ahora no vamos a poder
subir al cole :-P Es decir, creo que estaría buena una reunión mas
relajada, no tan técnica, para que quede espacio para charlar los temas
que surjan. Igual lo que sugirió Leo sobre Seaside me interesa
muchísimo, así que no estaría mal ver algo.

Saludos.

Sergio Fedi escribió:
>
> > Estuve chequeando en la lista en yahoo y veo que el mapa adjuntado
> no llego. Hay algun tipo de filtro?? Avisenme si uds lo pueden ver. Yo
> solo veo un recuadro debajo del cuerpo del mail que dice: Archivo
> adjunto(no guardado) plano.jpg
>
> A mi me llegó y lo pude ver.
>
>





__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas


__________ Información de NOD32, revisión 2314 (20070606) __________

Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com


Mensajes 15885 - 15914 de 17190   Más reciente  |  < Más reciente  |  Más antiguo >  |  Más antiguo
Avanzado

Copyright © 2009 Yahoo! de Argentina S.R.L. Todos los derechos reservados.
Política de privacidad - Condiciones del Servicio - Reglas de la comunidad de Yahoo! - Ayuda