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

Concatenar en DB2

Para concatenar texto en DB2 se usa CONCAT. Esta sentencia también se encuentra en Oracle y Mysql, pero su uso en DB2 es distinto y no es restrictiva como lo es en Oracle. Se puede decir que CONCAT en DB2 se usa como el símbolo mas , o las barras paralelas de los otros motores.

Ejemplo de uso:

select substr('20120102',1,4) concat '-' concat substr('20120102',5,2)
from sysibm.sysdummy1



En el ejemplo, se puede ver que se extrae de una cadena que contiene una fecha (yyyymmdd), el año y el mes y luego se concatena estos valores para darle a el siguiente formato al resultado yyyy-mm. También se usa la tabla sysdummy1 que es la versión DB2 de la tabla dummie de Oracle.




lunes, 17 de diciembre de 2012

Como saber la versión de DB2 instalada

Últimamente me he topado con este motor de datos DB2 de IBM. Y para familiarizarme con el, he instalado en un PC de mi casa la versión express que se provee por parte del gigante azul como es llamada esta CIA. También he empezado a leer el libro (Conociendo DB2 Express v9.5) que es fruto del trabajo de  la comunidad alrededor de este software.

Una de las primeras dudas que me surgió al tratar de seguir las instrucciones del libro, fue: ¿Estoy usando la versión 9.5? Y la forma de saberlo (si no te fijaste como yo al descargarlo) es abrir una ventana de comandos (estoy usando Windows 7, cmd) y ejecutar el comando:

db2level

Después de eso supe que la versión que instale es la 10.1. Por lo que me hace sentido que haya cosas que ya no existan o estén de otra forma en esta versión como el Centro de Control. Cosa que aun estoy buscando, pero primero actualizare mi documentación.



Este es el link de descarga de DB2 Express
http://www-01.ibm.com/software/data/db2/express/

Dejo de todas maneras el link para descargar el E-book
Conociendo DB2 Express v9.5


jueves, 13 de diciembre de 2012

Generar un jar desde Netbeans

En este post voy a mostrar algunos tips que pueden resultar útiles para quienes recién parten con Java.
  • Como generar un jar
  • Como ejecutar el jar
  • Como tomar valores desde una aplicación de consola (el jar generado)
Para este caso estoy usando Netbeans 7.2.1, sobre un Windows 7.

Primero voy a mostrar el código que nos va a permitir tomar dos parámetros desde la linea de comandos, y mostrar esos valores, de lo contrario la aplicación dirá que faltan parámetros. 

public class Getparam {

public static void main(String[] args) {
// Controlo si trae parametros
if (args.length == 2){
   System.out.println("Numero de parámetros esperados \n");
   System.out.println("Valor 1 "+args[0]+"\n");
   System.out.println("Valor 2 "+args[1]+"\n");
}else{
   System.out.println("El programa espera dos parámetros");
  }
 }
}


Para generar un jar desde Netbeans se debe ir a Run y luego a Clean and Build Project (Mayús+F11). El archivo jar queda en la carpeta dist en la siguiente ubicación (esto depende de tu instalación de Netbeans) NetBeansProjects\proyecto\dist.




Luego abrimos una ventana de comando (Inicio - Ejecutar - cmd ), te ubicas en la carpeta y ejecutas el programa del siguiente modo:

java jar  getparam.jar par1 par2


Donde:
getparam es el nombre que le di a mi proyecto





miércoles, 12 de diciembre de 2012

Captura de Pantallas en Windows 7

Estoy haciendo el levantamiento de un sistema. Para lo cual estoy tomando hartas capturas de pantalla. Y el método de presionar Impr Pant y CTRL+V le va a quitar claridad al documento que estoy haciendo.

No quería instalar un software para eso. Y encontré en el mismo Windows 7 la herramienta precisa: "Recortes".

Este programa sencillo, permite los siguientes tipos de captura:
  • Recorte de forma libre
  • Recorte Rectangular
  • Recorte de Ventana
  • Recorte de Pantalla Completa

Ademas se pueden escribir notas y destacar partes de la imagen.

Recomendado para cualquier despistado como yo que aun no haya dado con el, y que también no tenga requerimientos muy avanzados.

Para acceder al programa se puede presionar botón Inicio y en la barra de Buscar programas y archivos, escribir Recortes.



Cerrar libro sin guardar desde VBA

Hice una macro en Excel que tomaba unos datos desde DB2 y los guardaba en otro libro Excel. Y la idea es que el usuario pudiera trabajar solo en el Excel nuevo. Para lo cual era necesario cerrar el libro con la macro una vez que ya no era necesario.

Para esto agregue una función con una sencilla linea que permite justamente cerrar el libro sin guardarlo, sin pedir confirmación al usuario.

Sub CerrarSinGuardar()
'Cerrar el libro sin guardarlo
ThisWorkbook.Close savechanges:=False
End Sub