sábado, 16 de febrero de 2013

Equivalente de typeof en Visual Basic .Net

Estoy pasando unas rutinas de C# a Visual Basic .Net, y hay algunas cosillas que no son tan obvias de pasar.

Un caso es la expresión typeof que consiste de la palabra clave typeof seguida de un parámetro que indica un tipo entre paréntesis. Esto da como resultado un objeto System.Type para el tipo dado, en C#. En Visual Basic .Net esta expresión tiene  otro uso:

Compara una variable de referencia a objeto con un tipo de datos. (MSDN)

Ejemplo C#:
typeof(Button)

Retorna
System.Windows.Forms.Button

Si te tentaste igual que yo a usar tal cual typeof en Visual Basic te va a aparecer el siguiente mensaje en el editor: "Se esperaba 'Is')". El equivalente de typeof(tipo) en Visual Basic .Net es gettype.

Ejemplo VB.NET:

GetType(Button)

Fuentes
http://msdn.microsoft.com/es-es/library/0ec5kw18(v=vs.80).aspx

http://www.hanselman.com/blog/TheVBEquivalentToCTypeofKeyword.aspx



lunes, 4 de febrero de 2013

Esquema de colores por defecto en GVIM

Desde que cambie el esquema de colores a desierto (Editar - Esquema de colores - Desierto). No me gusta el esquema de colores que GVIM tiene por defecto.
De modo que quiero cambiar el esquema por defecto para dejar el que a mi me guste.

Para hacer esto ingresando comandos se hace como sigue:
:colorscheme desert

(ojo con el idioma) :colorscheme desierto no va a funcionar

Para configurar el esquema de colores favorito como por defecto, se debe abrir el archivo vimrc. En Windows 7 64 bits ese archivo se encuentra en:
C:\Program Files (x86)\Vim

y agregar la siguiente linea (reemplaza desert por tu configuración):
colorscheme desert

Fuente:

domingo, 20 de enero de 2013

Movistar go home

Hecho que para la mayoría de los mortales es sinónimo de recibir un saludo o un regalo, es el cumpleaños. Bueno, en este mes estoy de cumpleaños, no diré el día para que algún cercano sienta alguna presión. Pero les diré que el mes ha comenzado pésimo. Me he sentido ignorado, ofendido, ninguneado, etc. Se me acabaron los sinónimos pero la sensación es mas profusa. Y agregare algo mas: he sentido impotencia. ¿Porque motivo se preguntarán? ¿Fue asaltado, abusado, golpeado? Me siento como eso, y si así hubiera sido tendría en la mente la cara o el pasamontañas de quienes fueron. Pero lo que tengo en la mente es un logo que saca lo peor de mi. Si es un logo se trata de una empresa, si, la que tiene el peor servicio de Chile. Aunque son buenos haciendo publicidad, pero el servicio deja esta sensación de “Por favor, ¿hay alguien que pueda ayudarme?”. Pienselo de esta forma: Una mujer bonita haciendo dedo en la carretera, usted se detiene para llevarla y se suben un tropa de patanes que le sacan la mugre y le roban el auto. Así es el servicio de Movistar Chile.
Desde el 5 de Enero estoy sin internet, día en que llame a la Cía? Para tener una solución y hasta el día de hoy que escribo solo he tenido promesas incluidas, colgadas de teléfono, y excusas varias. Eso sin contar los inconvenientes que provoca estar sin conexión. Ya hice mi reclamo en Subtel, pero desconozco en que se traduce eso. Imagino a lo mas, un golpe en el hombro para ver que quiere “ese gallo”. Aun si, de todas formas llego la boleta de esta Cía? cobrando por sus servicios?. Y con esto agrego un sinónimo mas: robado, porque me cobran por un servicio que no me han entregado. ¿Les recuerda a la mafia cobrando por seguridad y a los cuidadores de autos ilegales?.
Lo único positivo de todo esto es que tengo el poder para parar con el abuso, terminando el contrato con esta Cía? Y así no financiar sus campañas en los medios para encontrar nuevas víctimas, perdón clientes.

sábado, 5 de enero de 2013

CTRL ALT SUPR en MAC

CTRL ALT SUPR es una salida poco elegante para cuando los programas se quedan pegados, tan tipico en Windows. Pero esa salida poco elegante también se encuentra en otros SO como MAC OS y Linux.  En MAC es CMD ALT ESC. Lo supe porque se me quedo pegado el iPhoto mientras descargaba fotos del iPhone, no permitiéndome apagar el equipo. El mensaje es el que aparece en la captura:

  Las fotos se están importando a la fototeca. Por favor, espere a que termine la importación.


La única forma que me quedo para salir del iPhoto fue CMD ALT ESC  (primera vez que se me pega).



martes, 25 de diciembre de 2012

Instalar wget en MAC

Wget es una herramienta que uso muy seguido en Linux (Es un gestor de descargas desde linea de comandos). Por lo que en MAC se hecha de menos, lo bueno es que es posible instalarla en el SO de la manzana. Acá muestro los pasos para instalarla:
Si las carpetas de destino no existen se deben crear (que es lo que me ocurrió). El proceso de instalación lo pueden ver en esta captura.




viernes, 21 de diciembre de 2012

Insertar salto de linea en VI

Una consulta SQL que este solo en una linea y que sea medianamente grande, puede ser difícil de leer. En ese caso surge la necesidad de separar lógicamente las lineas de tal forma que la consulta quede legible.

Eso es justamente lo que me paso hoy. Tenia una consulta de mas de 70 lineas pero que estaba en una sola. ¿Y como separar el texto en lineas legibles?. Solo necesitaba insertar después de las comas un salto de linea y de esa forma la consulta quedaba mas entendible. Esto es muy sencillo de hacer con VI.
El ejemplo que sigue fue hecho en Windows.


:s/, /,\r /g

El ejemplo de arriba, reemplaza las comas por comas mas un salto de linea. El texto original y el resultado en las siguientes imágenes.



Fuente:


jueves, 20 de diciembre de 2012

DataTable ya pertenece a otro DataSet (C#)

DataTable ya pertenece a otro DataSet. Este mensaje me apareció cuando intentaba cargar dos DataTable de distinto origen en un  DataSet. ¿Y como es que estaba haciendo esto?:

DataSet ds = new DataSet();
DataTable dt0 = new DataTable();
DataTable dt1 = new DataTable();
dt0 = funcion1(par1, par2);
dt1 = funcion2(par1, par2);
ds.Tables.Add(dt0);
ds.Tables.Add(dt1);


En el código, dos funciones me devuelven DataTables que necesito cargar en el DataSet.

La forma correcta de hacerlo es usando el método copy:

DataSet ds = new DataSet();
DataTable dt0 = new DataTable();
DataTable dt1 = new DataTable();
dt0 = funcion1(par1, par2).Copy();
dt1 = funcion2(par1, par2).Copy();
ds.Tables.Add(dt0);
ds.Tables.Add(dt1);


El método copy copia la estructura y los datos de un DataTable en otro.

Fuente
http://msdn.microsoft.com/en-us/library/system.data.datatable.copy.aspx