Dim proceso As New System.Diagnostics.ProcessStartInfo 'Colocamos la ruta del programa a ejecutar, o comando proceso.FileName = "java" 'Agregamos los parámetros de ejecución Dim argumentos As String = "-jar ejecuta.jar" proceso.Arguments = Argumentos 'Ponemos las condiciones para que se oculte la ventana al invocar el proceso proceso.WindowStyle = ProcessWindowStyle.Hidden proceso.CreateNoWindow = True 'Iniciamos el proceso en un nuevo hilo Process.Start(proceso)Ojalá les sirva para sus proyectos
sábado, 24 de agosto de 2013
Ejecutando programas externos desde .Net
Dada la necesidad de ejecutar un programa hecho en Java desde consola usando .Net con Visual Basic me puse un poco a investigar dada mi falta de experiencia en eso. Después de no mucho tiempo (2 minutos) encontré la solución resolviendo el problema de "ocultar" la ventana MS-DOS que aparece al ejecutar el programa:
sábado, 20 de julio de 2013
¿Qué intentaba arreglar cada lenguaje de programación?
Tomado de mundogeek.net
En su artículo What Languages Fix, Paul Graham, autor de Hackers & Painters
y fundador de Y Combinator
examinaba hace unos años algunos de los lenguajes de programación más
conocidos desde una óptica interesante: los problemas que sus creadores
intentaban solucionar al crearlos.
Hoy me he vuelto a encontrar con este texto y he dedicado unos
minutos a traducirlo y a crear una representación gráfica en forma de
línea de tiempo que podéis ver a continuación.
martes, 16 de julio de 2013
Modelo de cajas en CSS
Traducción de boxmodel:
Todos los elementos HTML son considerados como cajas. En CSS, el término "modelo de caja" o "box model" es usando al hablar del diseño y bosquejo.
El model de caja CSS es esencialmente una caja que se muestra alrededor de elementos HTML, el cual consiste de: márgenes, bordes, relleno y el contenido,
El modelo de caja nos permite colocar un borde alrededor de los elementos y espacio en relación a otros elementos.
El modelo se puede ver como la siguiente imagen:
Todos los elementos HTML son considerados como cajas. En CSS, el término "modelo de caja" o "box model" es usando al hablar del diseño y bosquejo.
El model de caja CSS es esencialmente una caja que se muestra alrededor de elementos HTML, el cual consiste de: márgenes, bordes, relleno y el contenido,
El modelo de caja nos permite colocar un borde alrededor de los elementos y espacio en relación a otros elementos.
El modelo se puede ver como la siguiente imagen:
Donde:
Margen (Margin): Es el espacio alrededor del borde. El margen no tiene color de fondo, es completamente trasnparente.
Borde (Border): Es el espacio alrededor del relleno y del contenido. El borde es afectado por el fondo de la caja.
Relleno(Padding): Es el espacio alrededor del contenido. El relleno es afectado por el color de fondo de la caja.
Contenido(Content): Es el contenido de la caja, donde se muestran las imágenes y el texto.
lunes, 15 de julio de 2013
Menú circular
Buscando ideas para crear un menú para la página www.llacuadetetique.com me topé con ésta bonita idea, la cual es crear un menú circular:
Donde el código para ponerlo en nuestra web la podemos encontrar en: codigo
miércoles, 10 de julio de 2013
Borrado de triggers de una base de datos mysql
En ocasiones cuando creamos triggers para llevar a cabo tareas inmediatas desde la base de datos y creamos triggers, sucede que después de un tiempo (1 semana) se nos olvida el nombre de los triggers creados.
Éste problema conlleva a que si necesitamos subirlos de nuevo o simplemente borrarlos no podemos hacerlo hasta recordar el nombre (si es que nos acordamos).
Una forma rápida de ver que triggers tenemos y de obtener la consulta para borrarlos es la siguiente:
select concat('drop trigger ', trigger_name, ';') from information_schema.triggers where trigger_schema = 'your_database'
donde your_database es sustituido por el nombre de la base de datos donde se encuentran los triggers.
Obtenido de http://stackoverflow.com
Como resultado nos dara los sqls necesarios para borrar los triggers que tenemos o en su caso para ver sus nombres.
Podemos ejecutar éste sql desde consola de Mysql o desde el PhpMyAdmin.
Como resultado nos dara los sqls necesarios para borrar los triggers que tenemos o en su caso para ver sus nombres.
Podemos ejecutar éste sql desde consola de Mysql o desde el PhpMyAdmin.
lunes, 8 de julio de 2013
Crear código SQL en Java a partir de una consulta
En una ocasión tuve la necesidad de respaldar ciertos datos de una base de datos MySql, los usuarios del programa tenian que generar a partir de una consulta los datos a exportar. De ésta forma tuve que buscar la manera de crear el código de inserción a la base de datos a partir de un conjunto de datos obtenidos a partir de una consulta a la BD.
El caso es el siguiente: Se tiene una consulta X, se requiere guardar a un archivo la exportación de la consulta y conocemos el nombre de la tabla de la cual se extrajo la información.
El primer procedimiento era usar las mismas herramientas que proporciona MySQL para llevar a cabo la exportación, solo que no todas las máquinas que usaban el programa se les podia instalar los ejecutables necesarios para llevar éste método; así que se decidió que se hiciera de forma plana (SQL) en archivos de textos importables a la Base de Datos final.
El método que se creo fue el siguiente:
El caso es el siguiente: Se tiene una consulta X, se requiere guardar a un archivo la exportación de la consulta y conocemos el nombre de la tabla de la cual se extrajo la información.
El primer procedimiento era usar las mismas herramientas que proporciona MySQL para llevar a cabo la exportación, solo que no todas las máquinas que usaban el programa se les podia instalar los ejecutables necesarios para llevar éste método; así que se decidió que se hiciera de forma plana (SQL) en archivos de textos importables a la Base de Datos final.
El método que se creo fue el siguiente:
/**De ésta forma se crea un archivo que contiene los inserts correspondientes a la consulta pasada como parámetro.
* Método que crea cadenas insert para cada datos leido de una consulta
* @param entrada Consulta a crear los inserts
* @param archivo Ruta del archivo a escribir
* @param tabla Nombre de la tabla donde se insertaran los datos
* @return Si se pudo o no realizar la conversión
*/
public boolean creaInsert(ResultSet entrada, String archivo, String tabla) {
try {
ResultSet salidaRS = entrada;
ResultSetMetaData rsmd = salidaRS.getMetaData();
String consulta = "";
consulta = "insert into " + tabla + " (";
for (int k = 1; k < rsmd.getColumnCount(); k++) {
consulta = consulta + rsmd.getColumnName(k + 1) + ",";
}
consulta = consulta.substring(0, consulta.length() - 1) + ") VALUES(";
for (int k = 1; k < rsmd.getColumnCount(); k++) {
if (rsmd.getColumnTypeName(k + 1).contains("INTEGER")) {
consulta = consulta + "" + salidaRS.getString(k + 1) + ",";
} else if (salidaRS.getString(k + 1) == null || salidaRS.getString(k + 1).contains("null") || salidaRS.getString(k + 1).contains("----")) {
consulta = consulta + "null,";
} else {
consulta = consulta + "'" + salidaRS.getString(k + 1) + "',";
}
}
consulta = consulta.substring(0, consulta.length() - 1) + ");";
File f;
f = new File(tabla + ".txt");
if (!f.exists()) {
f.createNewFile();
}
escribeArchivo(tabla, consulta);
return true;
} catch (Exception a) {
a.printStackTrace();
}
return false;
}
sábado, 6 de julio de 2013
Google recordandote
Que buen detalle de google, la verdad no sabía que hacía este tipo de cosas. Un gran punto a su favor :D
viernes, 5 de julio de 2013
Edad en Dias Meses Años usando java y mysql
En ocasiones es necesario saber la edad de una persona en cierta fecha, para esto existen diversas alternativas dependiendo de las herramientas con las que contamos.
En ésta ocasión les muestro la forma de hacerlo usando Java y una conexión a una base de datos MySql.
Para que el método descrito aqui funcione es necesario que se cuente con la conexión MySql ya creada y conectada y las fechas inicial y final. La fecha inicial puede ser la fecha de nacimiento y la final la fecha actual.
Para que el método sea lo mas amplio posible se pasa como parámetro ambas fechas.
Como resultado de éste método se retorna un tipo de dato ResultSet que contiene tres columnas: DIAS, MESES, ANIOS en caso de que no pasara error alguno. El uso del método puede ser mas o menos así:
Espero que les sirva para sus proyectos
En ésta ocasión les muestro la forma de hacerlo usando Java y una conexión a una base de datos MySql.
Para que el método descrito aqui funcione es necesario que se cuente con la conexión MySql ya creada y conectada y las fechas inicial y final. La fecha inicial puede ser la fecha de nacimiento y la final la fecha actual.
Para que el método sea lo mas amplio posible se pasa como parámetro ambas fechas.
public ResultSet DMAdiferencia(String inicio, String fin) { try { ResultSet diferencia = this.derby.createStatement().executeQuery("" + "SELECT {fn TIMESTAMPDIFF(SQL_TSI_YEAR,{ts '" + inicio + " 00:00:00' },{ts '" + fin + " 00:00:00'}) } AS ANIOS, " + " ( ( {fn TIMESTAMPDIFF(SQL_TSI_MONTH,{ts '" + inicio + " 00:00:00'},{ts '" + fin + " 00:00:00'})}) - ( {fn TIMESTAMPDIFF(SQL_TSI_YEAR,{ts '" + inicio + " 00:00:00'},{ts '" + fin + " 00:00:00'}) } * 12)) AS MESES, " + " -( {fn TIMESTAMPDIFF(SQL_TSI_DAY,{ts '" + fin + " 00:00:00'}," + " {fn TIMESTAMPADD ( SQL_TSI_MONTH," + " (({fn TIMESTAMPDIFF(SQL_TSI_MONTH,{ts '" + inicio + " 00:00:00'},{ts '" + fin + " 00:00:00'})}) - ( {fn TIMESTAMPDIFF(SQL_TSI_YEAR,{ts '" + inicio + " 00:00:00'},{ts '" + fin + " 00:00:00'}) } )* 12 )," + " {fn TIMESTAMPADD( SQL_TSI_YEAR," + " ({fn TIMESTAMPDIFF(SQL_TSI_YEAR,{ts '" + inicio + " 00:00:00'},{ts '" + fin + " 00:00:00'})}), {ts '" + inicio + " 00:00:00'} " + " )}" + " )}" + " )" + "}) " + "AS DIAS"); return diferencia; } catch (Exception a) { a.printStackTrace(); } return null; }
Como resultado de éste método se retorna un tipo de dato ResultSet que contiene tres columnas: DIAS, MESES, ANIOS en caso de que no pasara error alguno. El uso del método puede ser mas o menos así:
ResultSet salida= DMAdiferencia("2013-01-01","2013-12-12"); int dias= salida.getInt("DIAS"); int meses=salida.getInt("MESES"); int anios= salida.getInt("ANIOS");Ojo, la fecha debe estar en formato YYYY-MM-DD.
Espero que les sirva para sus proyectos
Etiquetas:
cabachu,
chuchu,
codigo,
diferencia,
fechas,
gabriel,
java,
mysql,
rojas,
timestamp,
villanueva
lunes, 1 de julio de 2013
Cálculo de CRIP (Clave de Registro e Identidad Personal)
Código para generar la CRIP, usada normalmente en las actas de nacimiento y como parte de la CURP
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package utils; /** * * @author cabachu */ import java.io.*; import java.util.*; // calcula el digito verificador de la CRIP para siglo pasado y el siglo actual // necesita tomar los valores de entidad, municipio, oficialia, acta y año //regresa un string que contiene la CRIP public class CalculaCrip { public String obtener_crip( String strEntidad, String strMunicipio, String strOficialia, String strAnio, String strActa) { String strdatos = ""; String strletras = "JABCDEFGHIJ "; // constantes de letras String strnumeros = "012345678900";// constantes de numeros int ik[] = {3, 2, 7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2}; // constante para calcular la crip int[] imul = new int[16]; int[] inum = new int[16]; int isuma = 0; int ix = 0; int ia = 0; int idigito = 0; if (strEntidad.length() == 1) { strEntidad = "0" + strEntidad; } // se agrega un cero si vien 1 solo digito if (strMunicipio.length() == 1) { strMunicipio = "00" + strMunicipio; }// se agregan ceros hasta copletar 3 digitos if (strMunicipio.length() == 2) { strMunicipio = "0" + strMunicipio; } if (strOficialia.length() == 1) { strOficialia = "0" + strOficialia; }// se agregan ceros hasta copletar 2 digitos if (strActa.length() == 1) { strActa = "0000" + strActa; }// se agregan ceros hasta copletar 5 digitos if (strActa.length() == 2) { strActa = "000" + strActa; } if (strActa.length() == 3) { strActa = "00" + strActa; } if (strActa.length() == 4) { strActa = "0" + strActa; } strdatos = strEntidad + strMunicipio + strOficialia + strAnio.substring(2, 4) + strActa; // se contatena la raiz para calcular el digito System.out.println(strdatos); // a cada numero de la raiz se le multiplica por un nuemro de la constante y se suman for (ia = 0; ia < 14; ia++) { inum[ia] = Integer.valueOf(strdatos.substring(ia, ia + 1)).intValue(); imul[ia] = inum[ia] * ik[ia]; isuma = isuma + imul[ia]; } // se obtiene el digito verificador ix = isuma % 11; System.out.println("suma "); System.out.println(isuma); System.out.println("digito antes de resta "); System.out.println(ix); if (ix <= 0) { idigito = 0; } else { idigito = 11 - ix; } // se evalua el año y se coloca el digito verificador numero o letra System.out.println("valor de comparacion"); System.out.println(strAnio.compareTo("1999")); if (strAnio.compareTo("1999") > 0) { if (idigito == 0) { strdatos = strdatos + "J"; } else { System.out.println(idigito); strdatos = strdatos + strletras.substring(idigito, idigito + 1); } } else { System.out.println(idigito); strdatos = strdatos + strnumeros.substring(idigito, idigito + 1); } System.out.println(strdatos); return strdatos; } }
viernes, 28 de junio de 2013
RFC y CURP en Java
RFC
El Registro Federal de Contribuyentes (o RFC) se refiere a una clave que tiene, toda persona física en México para realizar alguna actividad licita que este obligada a pagar impuestos a toda persona moral con algunas excepciones. A estas personas se les llama contribuyentes.
Esta clave debe llevar datos personales del contribuyente o persona física como su nombre y fecha de nacimiento; o nombre y fecha de origen de la persona moral. El registro se debe hacer en las oficinas del Servicio de Administración Tributaria de la Secretaria de Hacienda y Crédito Publico, y es obligatorio para todos los que señale el Código Fiscal de la Federación.
Esta clave debe llevar datos personales del contribuyente o persona física como su nombre y fecha de nacimiento; o nombre y fecha de origen de la persona moral. El registro se debe hacer en las oficinas del Servicio de Administración Tributaria de la Secretaria de Hacienda y Crédito Publico, y es obligatorio para todos los que señale el Código Fiscal de la Federación.
Como saber el RFC de una persona fisica?
Utilidades
En muchas ocasiones requerimos de pequeñas rutinas que son un dolor de cabeza. A veces éstas rutinas son reutilizables en más de una ocasión.
En mi caso existen algunas rutinas que aunque no han causado mucho problema al crearlas resultan ser muy útiles a la hora de crear aplicaciones.
El dia de hoy comparto una clase con algunas de éstas rutinas las cuales son:
stringToMoneda. Método que sirve para convertir un número double a su forma monetaria: Por ejemplo: 1325.35= $1,325.35
primerLetraMayuscula. Rutina que sirve para cambiar la primer letra en mayúscula. Muy útil cuando tenemos un nombre en puras minúsculas y queremos poner la primer letra en mayúscula.
pesosAPalabras. Rutina que cambia un double en su referente a pesos en letra P. Ej. $100 = cien pesos 00/100 M.N.
Algoritmos Genéticos
Los algoritmos genéticos tienen su origen en la simulación de la Evolución. La evolución es el proceso en el cual los genes heredados de dos padres aptos son modificados, mejorados o mutados de tal forma que los nuevos individuos son mejores genéticamente hablando.
El proceso de mejoramiento se lleva a cabo al unir dos genotipos para producir un tercero. El genotipo son todas las características que componen al individuo (color de piel, color de cabello, tipo de ojos, tamaño de dientes, etc). Cuando se mezclan dos individuos (dos genotipos), existen diversas combinaciones que se pueden producir dependiendo de la misma mezcla y de los mismos genes que tengan los individuos.
Abrir un archivo PDF desde una aplicación hecha en JAVA
Realizando una aplicación se requería que se abriera un archivo PDF creado en la misma aplicación. El primer acercamiento fue usar
Process p = Runtime.getRuntime().exec("C:/Program Files/Adobe/Reader 8.0/Reader/AcroRd32.exe "+ "archivo.pdf");
El problema de usar de ésta forma la ejecución de Acrobat Reader es que no siempre se encuentra en la misma ubicación por las diferentes versiones que pueden existir.
Así que la forma encontrada y vista aqui se plantea la solución de la siguiente forma:
Process p = Runtime.getRuntime().exec("cmd.exe /c start "+ "archivo.pdf");
El cual ejecuta el Acrobat Reader abriendo el archivo.pdf de forma satisfactoria.
Suscribirse a:
Entradas (Atom)