Author Archive

Conectando MySQL con Java

Jun 04, 2013 No Comments

Una forma sencilla para conectarse a MySQL desde Java, es usando el conector MySQL JDBC Driver. Primero debemos agregar el jar mysql-connector-java-5.1.18-bin.jar a las librerias de nuestro proyecto y solo nos queda conectarnos!. Podemos crear una instancia de la conexión a través de DriverManager.getConnection usando el string de conexión jdbc:mysql://server_name/database_name y luego jugar con Statement [...]

Read more

Reemplazar texto en varios archivos bajo Linux

Jun 03, 2013 1 Comment

Hay varias formas de reemplazar un texto en varios archivos (usando perl, un for con vim, etc.), pero con sed, todo es más facil. Si deseamos reemplazar el string manzana por pera a todos los archivos de un directorio, deberiamos ejecutar: Sencillo? además que utiliza la misma sintaxis de vim =) Y si queremos hacer [...]

Read more

“Componente de Script” en un proyecto Integration Services Project

May 28, 2013 No Comments

Una de las ventajas del componente de script en un proyecto de Integration Services (ETL), es que nos permite “jugar” de forma más comoda con los datos que estamos analizando, ya que contamos con todo el potencial de .NET al alcance de nuestras manos . Supongamos que necesitamos agregar una nueva columna (derivada) con el [...]

Read more

Vumetro en PHP

May 28, 2013 No Comments

A veces al dejar un “top” o un “watch w” en una consola, perdemos la noción de los colores =(, una buena forma de recuperarlos es crear un pequeño script en php que imite un vumetro que este constantemente analizando una fuente aleatoría de datos, pero con colores ASCII xD. Si alguien lo quiere intentar, [...]

Read more

numeros iterativos en tabla temporal con sql server

Apr 08, 2013 No Comments

A veces es necesario contar con una lista iterativa de números en una consulta sql, como no disponemos directamente de la instrucción for (sería ideal un for(int x=0;x

Read more

Extrayendo resultados de google mobile con CasperJS

Mar 25, 2013 1 Comment

CasperJS es un framework sobre PhantomJS que nos entrega una herramienta de mas alto nivel (comparado con PhantomJS) para automatizar procesos en un navegador, como completar formularios, extraer datos, secuencia de navegación entre páginas, etc. Instalación con git Ahora solo nos queda agregar la ruta del “binario” de casperjs a nuestras variables PATH global o [...]

Read more

Excepción OleDBException “is not a valid path”

Mar 25, 2013 No Comments

Al trabajar con archivos CSV junto al conector OleDbConnection es posible obtener la excepción OleDBException … “is not a valid path“. Claramente es un error respecto a la ruta del archivo, ocurrido generalmente por que hemos definido la ruta completa del archivo en Data Source de nuestro string de conexión. Sin embargo, cuando trabajamos con [...]

Read more

Acceder al interior de un iframe (distinto dominios) con phantomjs

Feb 27, 2013 2 Comments

Phantomjs es un browser funcional (basado en WebKit) bajo línea de comandos, contiene una API y es programable a través de Javascript, permitiendo manejar (de forma automatizada) Javascript, DOM handling, CSS selector, JSON, Canvas, and SVG realmente en un navegador. Como no requiere de una interfaz X, es ideal para automatiza tareas como pruebas unitarias, [...]

Read more

descargando archivos con php curl

Feb 25, 2013 3 Comments

Una forma sencilla y eficiente para descargar archivos con curl, es crear un nuevo recurso de archivo y asociarlo a curl a través de la opción CURLOPT_FILE con curl_setopt. El siguiente ejemplo primero se autentifica contra un supuesto sitio (capturando las cookies) y luego procede a descargar el archivo (que requiere autentificación).

Read more

leer datos desde una planilla excel (xls,xslx) con oledb en C#

Dec 11, 2012 2 Comments

Una forma sencilla para leer datos desde una planilla excel (formato xlx o xlsx), es a través de un adaptador OleDB, siempre y cuando tengamos instalado una versión reciente de Office en el sistema. El siguiente script imprime las dos primeras colunas de la hoja 1.

Read more