Entradas

Trucos Android Eclipse

Hola, en esta entrega les cuento que he estado tocando el tema de desarrollo de móviles con Android; y aunque los IDE's ayudan mucho, todavía tienen ciertos bugs que obligan a realizar ciertos movimientos para que la cosa funcione. Eclipse es el que mejor ha manejado el workflow del desarrollo sobre móviles, pero aun asi, tiene unos trucos que cuando se esta empezando, es complicado adivinar que se tiene que hacer para que funcione, aun cuando aparentemente no hay error alguno. Clean: el comando clean es necesario para volver a realizar una compilación limpia del proyecto y empaquetar todo de nuevo en un apk. Eclipse muestra la carpeta bin que es donde pone el resultado del build; esta se borra en su totalidad con clean y se llena de nuevo con el comando build proyect o si esta activado automáticamente lo hará.  Cada vez que modifiques una clase o una configuración en xml de los layouts o widgets, es mejor hacer un clean. Build: es común que cuando uno realiza el build,...

Lógica de negocio en Base de datos o Java

  En el desarrollo de software surgen muchas dudas, una de ellas me hizo reflexionar el siguiente planteamiento: Lógica de negocio en la base de datos: por lógica de negocio se entiende las reglas y la manipulación de los datos para proveer un resultado esperado. La ubicación de esta lógica supone varias ventajas: Lógica centralizada: la lógica esta centralizada y no importa el cliente que intente accederla, siempre va a ser la misma, con un mismo lenguaje SQL. Velocidad: al tener los datos en el mismo motor que ejecuta los procedimientos, se evita el ir y venir entre el servidor web o cliente y la base de datos por datos a procesar. Actualización: al estar centralizada, un cambio en la lógica actualiza todos los clientes que la utilicen, sin importar la plataforma. También supone ciertas desventajas: Difícil de mantener: Trabajar con SQL es como trabajar con Cobol, es programación procedimental en su gran mayoría; agregar una nueva funcionalidad podría suponer revisar m...

Swing Multihilo ProgressBar indeterminate

El anterior ejemplo se utilizo SwingWorker para hacer un llamado a un procedimiento que se demora mucho y de paso no bloquear la interfaz y poder actualizar. Este funciona bien pero por alguna razón no me funcionó igual cuando quería utilizar el progressbar de modo indeterminate. (.setIndeterminate(true)) así que encontré una forma de hacerlo y es en vez de extender el objeto de trabajo de Thread se extiende de SwingWorker, con esto, sobreescribiendo el metodo doInBackground el SwingWorker se encargaría de actualizar la interfaz sin bloquearla. public class Procesar extends SwingWorker { @Override protected Object doInBackground() throws Exception { barra.setIndeterminate(true); // proceso con duración indeterminada barra.setIndeterminate(false); return "Hecho."; } } } Lógicamente el llamado a dicha clase cambia y ya se ejecutaría con run() sino con execute() ...

Swing netbeans multihilo con barra de progreso

Con este ejemplo podemos usar una barra de progreso en Netbeans, los controles se pueden dibujar y cuando necesitemos procesar algo que consuma tiempo lo podemos mostrar con la barra de progreso desde esta clase     static class HiloDeLaBarra extends Thread {         private static int RETARDO = 500;         JProgressBar Barra;                     // Constructor         public HiloDeLaBarra(JProgressBar barra) {             Barra = barra;         }         // Subrutina que incrementa la barra de progreso         public void run() {             int minimo = Barra.getMinimum();             int maximo = Barra.getMaximum();                         ...

Borrar Filas Duplicadas

Siempre es bueno tener una llave única en las tablas del sistema; pero en algunos casos, cuando las llaves son autonumericas o no tiene llave, las inserciones se pueden volver un problema cuando los registro son repetidos y no hay forma de identificar uno del otro, sino solamente por la autonumerica o por el rowid. Puedes eliminar los registros uno a uno, o con uno de los siguientes script’s: Borra todos los registros que no esten en los minimos de la misma tabla. DELETE FROM departamento WHERE rowid NOT IN (        SELECT MIN(rowid)           FROM departamento d       GROUP BY D.departamento_id ) Similar a la anterior, pero sin el NOT IN DELETE FROM departamento A WHERE ROWID > ( SELECT min(rowid) FROM departamento B WHERE A.departamento_id = B.departamento_id); Ahora con Exists DELETE FROM departamento A WHERE EXISTS ( SELECT ‘x’ FROM departamento B WHERE A.departamento_id = B.departamento...

Teletrabajo

Ya existe en Colombia una ley que reglamenta el teletrabajo con las mismas garantías de un trabajador presencial; este es un resumen del reglamento: Abc del teletrabajo

Encontrar el 2do o N valor mas alto o mas bajo

Es fácil encontrar el valor mas alto o mas bajo de una consulta de datos con las funcionas max() y min(); pero cuando se necesita el segundo o tercer valor mas alto, la cosa cambia un poco, de esta forma: select id from (select rownum r, id from trabajo order by id desc) where r=2; De esa forma tendremos la consulta ordenada de forma descendente pero tomando a partir de la fila 2.