lunes, 14 de mayo de 2012

Montículo, Pila, Tipos por Valor y por Referencia WTF??

En esta ocasión comentare algunos conceptos básicos sobre programación, ya se! ya se! aquí puro experto, pero seguro que abra muchos a quienes les sea de utilidad que es precisamente la intensión de estos aportes.


Cuando declaramos una variable, antes que nada debemos estar consientes de que esta formada por tres elementos: 
1. Nombre de la variable.
2. Tipo de Datos de la variable.
3. Valor de la variable,


Ahora bien, dependiendo del tipo de la variable que usemos, esta se guardara en uno u otro tipo de memoria, ya que para este fin existen dos tipos: la Pila [Stack] y el Montículo [Heap].


El compilador almacena las variables de tipos primitivos en la Pila, que es una estructura de tipo LIFO [Last InFirst Out], esta memoria es mucho mas ágil aunque Estática, que su contraparte, sin embargo tiene una limitante en cuanto al tamaño que es de 1024 kb. No obstante es posible modificarla mediante opciones de compilación, pero esa es otra historia.


Por otra parte cuando ocupamos tipos Referencia [Clases, Objetos, Interfaces, Delegados, etc.] estos son almacenados en el Heap, que es otro segmento o tipo de memoria, que se asigna de forma dinámica a través de un administrador de la misma, que en DotNet se denomina: Garbage Collector o Recolector de Basura, que hay que decir que es quien se encarga de liberar la memoria que ya no es ocupada. Es importante mencionar que aun cuando el objeto referencia se encuentra en el Heap, en el Stack se crea un Apuntador, que almacena precisamente la dirección donde puede localizar el contenido de esa variable referencia, por esa razón cuando asignamos un objeto a otro, en realidad lo que estamos haciendo es copiar a su apuntador la misma dirección de memoria donde se localiza el objeto.


Hemos dicho que los tipos primitivos se copian en el Stack, sin embargo como toda regla tiene su excepción y esta es que si estas variables son miembros o propiedades de objetos, estas se almacenan también en el Heap y solo cuando son variables locales dentro de sus métodos estas van al Stack, ¿por que? porque son variables temporales de las que el compilador solo deberá almacenar su valor de forma breve para realizar algunas operaciones, y esto ademas agilizara la ejecución de la aplicación.


Bueno de momento esto ha sido todo, espero no liarlos mucho con tantas letras, pero muchas ocaciones estos detalles que suelen ser teóricos y en apariencia muy basicos, pueden hacer la diferencia dentro de nuestros desarrollos.


Happy Coding... Karloz Arba 



Imprimir pantalla y pantalla actual en vb.net

Que tal. De manera breve mostraré como mandar al portapapeles la pantalla y la pantalla actual.

El como tratarla lo veremos después, aunque la solución es tan sencillo como mandarla a un Image.

' en un botón o donde queramos establecer la impresión colocamos los siguiente:

 SendKeys.Send("{PRTSC}") ' para la pantalla completa 


 SendKeys.Send("%{PRTSC }")  ' para la pantalla activa. 

 Espero que les sea de utilidad. karlozarba... Happy coding!

miércoles, 9 de mayo de 2012

Desde Windows phone

Que tal! Pues ya he dejado mi android de lado y ahora desde WP checando .si es posible bloggear decentemente. Saludos.