jueves, 21 de julio de 2011

Usando Google+

Para que sirven las Quedadas o Hangousutorturte

Bueno, sirven para hacer vídeo conferencias, pero la diferencia radica en que no necesitas que las personas del agreguen a los participantes, sino, cualquier miembro del circulo puede ingresar en el momento que quiera a través de un link que se genera para ello, así por ejemplo se puede poner en facebook, "Hey estoy dando una conferencia, ingresen con este linkhttps://plus.google.com/fdfkhsdkjfhsjkfhsd".

¿Como se ocupa la opción YouTube?

Ohhh esta es mi opción favorita, voy a poner un ejemplo, supongamos que con unos amigos organizamos el evento "kamehame-ha por la educación" y queremos reunirnos para ver los vídeos, entonces iniciamos una quedada, espero que entren mis amigos y luego voy a donde dice youtube y busco el primer vídeo y le ponemos play. Ellos podrán ver el vídeo AL MISMO TIEMPO que los demás y ademas podremos ir comentándolo y viendo sus caras.
También es buena opción si quieren prepararle una sorpresa en vídeo a alguien, ya podrán "ver la cara que puso" cuando vio el vídeo XD.

Si tienen sugerencias no olviden comentar

domingo, 10 de julio de 2011

Atajo de Teclado

Ohhhhhhhhh me acabo de dar cuenta que puedo pegar en Google Chrome apretando shift+insert en windows
¿funcionará en ubuntu o en otros programas?

MVC en Flash

Creo que nunca me había costado tanto entender algo xD.

Bueno, no soy muy bueno en el tema y supongo que en paginas mas especializadas como www.cristalab.com podrán encontrar mejor información respecto al tema, pero en fin, voy a escribir lo que a mi parecer es el tema:

¿MVC? ¿es esa cuestión?¿sé come?

El MVC es un estilo de programación (usado ampliamente en PHP) con el que se logran controlar de mejor manera los projectos grandes, si tienen una cosa chica, mejor ni sigan leyendo, pero si quieren algo que sea realmente grande o que ha futuro pueda crecer mucho, mejor sigan leyendo.

MVC consiste en seperar el programa o aplicación en 3 partes distintas, que no necesesariamente se comunican entre sí y son:

El Modelo, encargado de manipular los datos que genera el programa o que entran.
La Vista, encargada de administrar los asuntos "visuales del programa".
El Controlador, encargado de enlazar estas dos partes y dar forma a nuestro programa (es donde esta el grueso del programa).

Por Ejemplo:
Tenemos una aplicación en la que se muestran los puntajes de un detminado juego en flash.

El modelo es el encargado de obtener los puntajes, ya sea de una pagina en php, un xml o un simple archivo de texto, da lo mismo el modelo sabrá hacerlo.
La Vista es la encargada de presentar los datos en la pantalla, ya sea cambiando un fotograma, llamando una instancia de alguna clase especialmente pensada para eso, actualizando una serie de TextField, no importa, la vista sabe que es lo que tiene que hacer y como hacerlo.
El controlador luego se encarga de unir las partes, por ejemplo, al hacer clic en el botón "Ver Puntajes" el controlador realiza las siguientes acciones:
Le pide los datos al modelo y le di a la vista que ponga un mensaje de "Espere por favor".
Cuando el modelo tenga listo los datos y los entregue, no sé en un Array, le pasa la Array a la vista para que pueda presentar los datos. no importa que el controlador sepa como se obtienen los datos o como se presentan, sino que se encarga de que se obtengan y se presenten.

¿Para que sirve esto?

El modelo MVC sirve para mejorar las posibles actualizaciones de tu programa y hasta la lectura del código. Al principio es mas trabajo, pero ayuda bastante cuando las cosas se hacen mas complejas. Prefiero mil veces mas un programa que diga algo como:

function clicEnBoton(event){
vista.mostrarDatos(modelo.obtenerDatos()); 
}

Que uno que diga algo así como:

function clicEnBoton(event){
for each (var i in datos){
textField.text=i+" puntos"; //Simplificando la cosa sabes que puede ser mas difícil. 
}

por que me da mas libertad al momento de querer cambiar el modo en hace las cosas.

¿Como aplico esto en Flash?

Tanto Flex, como Flash tienen varias herramientas para realizar esto, especialmente flex, en donde se separá muy bien, lo que es la vista del programa y el programa en si. Yo utilizo (y no sé si sea la mejor forma de hacerlo) un tipo especial de clases, que se llaman Singleton (lean el articulo en wikipedia esta muy bueno y tiene un ejemplo en flash ; ] ).

¿Que es Singleton?

Las Clases Singleton son clases que se instancian una solo vez y son por decirlo así "globales" ya que llamamos a la misma instancia en todo el programa. La verdad no sabia que se podían crear clases con estas características y las encuentro bastante útil.

Según san wikipedia el codigo para crear una clase Singleton en flash, es el siguiente:

public class Singleton{
   private static var instance:Singleton;
   private static var allowInstance:Boolean;
   public function Singleton(){
      if(!allowInstance){
         throw new Error("Debes usar getInstance()");   
      }else{
         trace("Se inicializó una instancia de Singleton");
      }
   }
 
   public static function getInstance():Singleton{
      if(instance==null){
         allowInstance=true;
         instance= new Singleton();
         allowInstance=false;                        
      }else{
         trace("Se regresa la instancia existente");      
      }
      return instance;
   }
}

Y funciona!!

¿Y como se ocupa?

Pues supongamos que tengo una clase que controla a toda la aplicación, pone los listener en los elementos, verifica que el usuario se alla registrado y le avisa cuando se avanza de nivel, etc. Como eso es mucho código, sería bueno crear una segunda clase controladora encargada solamente de una labor, por ejemplo, que el usuario este registrado, cuando el usuario duplico su ip, cuando se abre la aplicación desde otra ventana, se desconecto, etc. pero ademas, necesita poner un mensaje en la pantalla para avisar que algo ocurrio, y para eso, necesitará acceder a la instancia de la clase que controla la vista y esa clase en especifico, no una nueva instancia creada por un un New Vista(); si no que la misma que ocupa el controlador principal.
¿Como hacemos eso?
El metodo que yo ocupaba era, pasar la instancia como parametro a través de una fución pero otra forma de hacerlo, es usando el metodo getInstance(); de la clase singleton.
private var vista:Vista= Vista.getInstance();
Lo que me asegura que estoy usando la misma instancia tanto en el controlador principal como en el secundario, así, si quiero que mostrar un mensaje por medio de la clase secundaria, solo basta con escribir:
import Vista;
private var vista:Vista= Vista.getInstance();
....
vista.mostrarMensaje("Desconectado por el servidor")
...
Como les dije, esto sirve para proyectos mas bien grandes, ya que segmentar tanto el código en un proyecto chico, puede ser medio engorroso, pero este método, permite olvidarte de como se hacen las cosas y dedicarte a dar ordenes  programar mas la lógica del programa.

Recomiendo Flash Builder o Eclipse + Flex para trabajar, así es mas fácil acceder a los métodos públicos y saber que es lo que devuelve cada uno.

sábado, 9 de julio de 2011

Little Wonders: FRIO INVIERNO!

Little Wonders: FRIO INVIERNO!: "Desde muy temprano, los pequeños rayos de sol se introducen por cada pequeña abertura que encuentran disponible, brillan con intensidad, n..."

El Blog de una amiga, espero que siga escribiendo, es una gran persona :D