DAM archivos - el blog de giltesa https://giltesa.com/tag/dam Wed, 24 Dec 2014 19:14:56 +0000 es hourly 1 https://wordpress.org/?v=6.3.1 79349975 Medir tiempo de ejecución de un programa en C# https://giltesa.com/2013/04/24/medir-tiempo-de-ejecucion-de-un-programa-en-c https://giltesa.com/2013/04/24/medir-tiempo-de-ejecucion-de-un-programa-en-c#comments Wed, 24 Apr 2013 14:27:09 +0000 https://giltesa.com/?p=13798 [crayon-662c89294f671687315780/] [crayon-662c89294f678663858865/]

La entrada Medir tiempo de ejecución de un programa en C# aparece primero en el blog de giltesa.

]]>

// Inicia el contador:
DateTime tiempo1 = DateTime.Now;

// Código del programa...

// Para el contador e imprime el resultado:
DateTime tiempo2 = DateTime.Now;
TimeSpan total = new TimeSpan(tiempo2.Ticks - tiempo1.Ticks);
Console.Write( "TIEMPO: " + total.ToString() );

// Inicia el contador:
Stopwatch tiempo = Stopwatch.StartNew();

// Código del programa...

// Para el contador e imprime el resultado:
Console.Write( "TIEMPO: " + tiempo.Elapsed.Seconds.ToString() );

La entrada Medir tiempo de ejecución de un programa en C# aparece primero en el blog de giltesa.

]]>
https://giltesa.com/2013/04/24/medir-tiempo-de-ejecucion-de-un-programa-en-c/feed 4 13798
Segunda APP para Android: Task Calendar https://giltesa.com/2013/04/20/segunda-app-para-android-task-calendar https://giltesa.com/2013/04/20/segunda-app-para-android-task-calendar#respond Sat, 20 Apr 2013 10:46:09 +0000 https://giltesa.com/?p=13758 La aplicación se trata de un calendario de tareas que permite almacenar tareas agrupadas por etiquetas. Estas tareas se muestran en la pantalla principal a través de un FragmentActivity que permite cambiar entre las tareas de diferentes etiquetas arrastrando la pantalla de izquierda a derecha. Estas tareas pueden añadirse, editarse o eliminarse desde los diferentes […]

La entrada Segunda APP para Android: Task Calendar aparece primero en el blog de giltesa.

]]>
La aplicación se trata de un calendario de tareas que permite almacenar tareas agrupadas por etiquetas. Estas tareas se muestran en la pantalla principal a través de un FragmentActivity que permite cambiar entre las tareas de diferentes etiquetas arrastrando la pantalla de izquierda a derecha.

Estas tareas pueden añadirse, editarse o eliminarse desde los diferentes menús disponibles en la aplicación.

El menú principal es el de ajustes y cuenta con una gran cantidad de opciones. Las más sencillas son las que permiten elegir el orden en el que se mostraran las tareas, o cambiar el tema por uno blanco o negro, o solicitar la confirmación de salida.

Pero hay opciones avanzadas como la gestión de etiquetas en las que se puede elegir el nombre y color. Gestión de copias de seguridad de la base de datos en la memoria SD. Respaldo de las copias de seguridad en Dropbox.

Compartir la aplicación, puntuarla en Google Play o reporte de errores. Y términos de la licencia en un WebView

Clases

En total la aplicación cuenta con 21 clases para su funcionamiento, estando repartidas en 4 grupos: Activities, Adapters, Helpers y Utils.

 Activitis

Se usan en total 10 activities para mostrar la interfaz del programa, tres de ellas para la pantalla principal y el resto para el menú de opciones.

 Adapters

Hay 3 de ellos, son necesarios para personalizar la vista de los ítems dentro del ListView, para las tareas, etiquetas y backups.

 Helpers

Son 5 clases intermediarias que facilitan el uso de ciertos códigos repetitivos. Estos son la gestión a las bases de datos, la gestión de etiquetas y tareas con la base de datos, las preferencias almacenadas de forma automática por la PreferenceActivity, y gestión de backups.

 Utils

Aquí se encuentran 4 clases sueltas, son las de Tareas, Etiquetas, Backups y el AlertDialog para el cambio de color de las etiquetas.

 Ficheros XML

  •  En este grupo de fichero nos encontramos 12 layouts y 10 menus para las activityes.
  • Una web en HTML + css + imágenes en base 64 para mostrar la licencia en el WebView de forma local.
  • Los ficheros de Springs y arrays para mostrar la aplicación en ingles y español
  • El fichero setings para el PreferenceActivity.
  • Y unas 24 imágenes en 4 resoluciones para los distintos iconos que posee la app.

Errores conocidos

La aplicación tiene mas errores de los que yo desearía… a continuación cito de los cuales tengo constancia ordenados de peor gravedad a menor:

En la pantalla principal al intentar añadir, editar o eliminar las tareas hay muchos problemas. No es nada fácil refrescar los cambios en pantalla y realizar las operaciones correctamente. Después de muchas pruebas se ha conseguido que vaya mas o menos bien pero aun así hay ocasiones en las que el programa deje de funcionar correctamente y se cierra:

Para crear o editar tareas se ha tenido que reabrir la clase principal en vez ce cerrar la hija para de este modo forzar al refresco de los ítems. Al menos esta operación se realiza con un FLAG que hace que el funcionamiento parezca normal.

Al eliminar tareas falla si antes no has hecho scroll por todas las columnas…

Si se crea una tarea sin haber creado antes una etiqueta se cierra la aplicación.

La administración de backups solo copia la base de datos, no las configuraciones de los menús.

La sincronización de copias de seguridad con Dropbox ha acarreado muchísimos problemas. La API que tenían disponible (sacaron la nueva en febrero de 2013) solo permite usar el SDK de androide en su versión 9 o interior, eso ha causado que todas las activities que usaban clases mas avanzadas a esa versión haya habido que añadirles etiquetas de supresión de errores para que se permitiera la compilación.

Además en ocasiones al acceder al activity se cierra inesperadamente por problemas de la sesión de Dropbox.

Y los ficheros solo se sincronizan desde el móvil a Dropbox y no en orden contrario.

En tablets aparece un doble botón de menú, en mi tablet chino hasta tres…

El menú de puntuar la aplicación en Google Play “no funciona” porque la aplicación no esta en el market.

Descargas

La entrada Segunda APP para Android: Task Calendar aparece primero en el blog de giltesa.

]]>
https://giltesa.com/2013/04/20/segunda-app-para-android-task-calendar/feed 0 13758
Ejercicios JAVA Procesos – Hoja 3, 4 y 5 https://giltesa.com/2013/04/20/ejercicios-java-procesos-hoja-3-4-y-5 https://giltesa.com/2013/04/20/ejercicios-java-procesos-hoja-3-4-y-5#comments Sat, 20 Apr 2013 10:28:17 +0000 https://giltesa.com/?p=13746 Ejercicios de Programación de Servicios y Procesos en JAVA: Hoja 3 Monitores en Java: Synchronized. Semáforos. El problema de los filósofos. El problema de los lectores y los escritores. Calculo de dos matrices con paralelismo. Uso de Locks reader y writer. Sopa de letras con paralelismo en su resolución automática y con GUI. Hoja 4 […]

La entrada Ejercicios JAVA Procesos – Hoja 3, 4 y 5 aparece primero en el blog de giltesa.

]]>
Ejercicios de Programación de Servicios y Procesos en JAVA:

Hoja 3

  • Monitores en Java: Synchronized.
  • Semáforos.
  • El problema de los filósofos.
  • El problema de los lectores y los escritores.
  • Calculo de dos matrices con paralelismo.
  • Uso de Locks reader y writer.
  • Sopa de letras con paralelismo en su resolución automática y con GUI.

Hoja 4 y 5

  • Servidor de ficheros con GUI, sockets.
  • Servidor de ficheros con GUI, sockets, y paralelismo.
  • Servidor de ficheros con GUI, sockets, paralelismo y criptografía asimétrica.
  • Servidor de ficheros con GUI, sockets, paralelismo y criptografía simétrica y asimétrica.

 

La entrada Ejercicios JAVA Procesos – Hoja 3, 4 y 5 aparece primero en el blog de giltesa.

]]>
https://giltesa.com/2013/04/20/ejercicios-java-procesos-hoja-3-4-y-5/feed 2 13746
Threads parametrizados en C# https://giltesa.com/2013/04/18/threads-en-c https://giltesa.com/2013/04/18/threads-en-c#comments Thu, 18 Apr 2013 13:32:45 +0000 https://giltesa.com/?p=13725 Acostumbrado a usar hilos en Java y ahora que me ha tocado hacerlo en C# se me ha hecho extraño su uso al principio ya que cambia un poco. En vez de crear una clase que herede de la clase thread, como se haría en Java, en C# lo que hay que hacer es crear […]

La entrada Threads parametrizados en C# aparece primero en el blog de giltesa.

]]>
Acostumbrado a usar hilos en Java y ahora que me ha tocado hacerlo en C# se me ha hecho extraño su uso al principio ya que cambia un poco.

En vez de crear una clase que herede de la clase thread, como se haría en Java, en C# lo que hay que hacer es crear un objeto de la clase que se quiera y lanzar un hilo que ejecute un método de ese objeto creado.

Además para poder pasarle parámetros al hilo/método hay que crear un tipo delegate que permite encapsular el método con sus parámetros, después estos parámetros podrán ser usados como lectura, lectura/escritura o incluso podrán devolver el resultado por valor. En este enlace hay un documento muy interesante.

Sin mas paso a poner un ejemplo:

Si quisiéramos obtener los resultados por valor modificaríamos lo siguiente:

Thread miHilo = new Thread(delegate()
{
    operadores = operar.multiplicar(operadores);
});

//-------------------------

public object[] multiplicar(object[] parametros)
{
    Thread.Sleep(1000);
    int resultado = (((int)parametros[0]) * ((int)parametros[1]));
    return new Object[] { parametros[0] , parametros[1] , resultado };
}

En ambos ejemplos se ha querido enviar los parámetros como un array pero no es necesario ya que no hay ningún impedimento en enviar varios parámetros por separado.

La entrada Threads parametrizados en C# aparece primero en el blog de giltesa.

]]>
https://giltesa.com/2013/04/18/threads-en-c/feed 2 13725
Cifrar y descifrar datos con el sistema criptográfico RSA https://giltesa.com/2013/02/27/cifrar-y-descifrar-datos-con-el-sistema-criptografico-rsa https://giltesa.com/2013/02/27/cifrar-y-descifrar-datos-con-el-sistema-criptografico-rsa#comments Wed, 27 Feb 2013 17:24:31 +0000 https://giltesa.com/?p=13398 [crayon-662c89295244f584847683/] [crayon-662c892952453071005191/] [crayon-662c892952454376719315/]

La entrada Cifrar y descifrar datos con el sistema criptográfico RSA aparece primero en el blog de giltesa.

]]>



La entrada Cifrar y descifrar datos con el sistema criptográfico RSA aparece primero en el blog de giltesa.

]]>
https://giltesa.com/2013/02/27/cifrar-y-descifrar-datos-con-el-sistema-criptografico-rsa/feed 3 13398
Mi primera APP para Android: Calculadora Básica https://giltesa.com/2012/12/01/mi-primera-app-para-android-calculadora-basica https://giltesa.com/2012/12/01/mi-primera-app-para-android-calculadora-basica#comments Sat, 01 Dec 2012 16:47:10 +0000 https://giltesa.com/?p=12859 La finalidad de esta aplicación no era realizar una calculadora indestructible que realizara todas las operaciones correctamente, si no iniciarse en la programación en Android probando e implementando las diferentes herramientas que se ofrecen para desarrollar aplicaciones. Por ello esta calculadora no es perfecta, ya hay en el market suficientes calculadoras denigrantes como para subir […]

La entrada Mi primera APP para Android: Calculadora Básica aparece primero en el blog de giltesa.

]]>
La finalidad de esta aplicación no era realizar una calculadora indestructible que realizara todas las operaciones correctamente, si no iniciarse en la programación en Android probando e implementando las diferentes herramientas que se ofrecen para desarrollar aplicaciones. Por ello esta calculadora no es perfecta, ya hay en el market suficientes calculadoras denigrantes como para subir otra mas.

Como breve resumen, esta APP cuenta con las siguientes caracteristicas:

Activities

La calculadora cuenta con tres activities para mostrar las diferentes interfaces:

La primera y principal interfaz es la usada para mostrar todos los botones y la pantalla* de la calculadora. Esta activity cuenta con dos tipos de visualización distintas según si la orientación del dispositivo es en vertical u horizontal.
Se ha tenido en cuenta las Instancias del activity para no perder los datos al cambiar el tipo de visualización.
También se muestra todo el contenido de forma dinámica haciendo que se ocupe toda la pantalla independientemente de la resolución del dispositivo.

La segunda activity se emplea para la pantalla de configuración de la calculadora. Desde esta pantalla el usuario puede ajustar el tiempo de vibración al pulsar una tecla, recordar las ultimas operaciones realizadas de forma permanente, incluso aun después de reiniciar el móvil, y mostrar u ocultar la barra de notificaciones.

La tercera y última activity se usa para mostrar la pantalla sobre la información de la calculadora y el autor. Esta pantalla cuenta con un Intent que es lanzado al pulsar un TextView y que a su vez abre el navegador de Internet con la URL pasada como parámetro.

Menús

Además la calculadora dispone de dos menús distintos:

El primero de ellos se muestra al pulsar la tecla física de menú del dispositivo. Esta muestra un menú que permite:

Copiar el número mostrado en pantalla al portapapeles de Android.
Pegar desde el portapapeles el contenido en la pantalla de la calculadora.
Abrir el menú de configuración
Y abrir la pantalla de acerca de

El segundo menú solo se puede usar desde la vista horizontal de la calculadora. Este menú, de tipo ContextMenu, permite elegir algunas operaciones matemáticas avanzadas.

Recursos

El icono de la calculadora esta preparado para visualizarse correctamente en cuatro resoluciones distintas.

Además el texto mostrado en pantalla esta disponible tanto en ingles como en español.

Extras

*La pantalla de la calculadora es un control hecho a medida a partir de dos TextView y un EditText, todos ellos colocados en un RelativeLayout.
Cuenta con su propia clase en java con una gran cantidad de métodos que realizan las operaciones necesarias para mostrar y obtener el texto, y realizar las operaciones previas a su inserción.

Se ha usado el tipo de dato BigDecimal, en vez del Double o Float, para realizar todas las operaciones de forma decimal y no binaria para no perder precisión en el cálculo de las operaciones.

Se ha incluido el control de hardware del vibrador para indicar la pulsación de las teclas.

Se ha usado ficheros, almacenados en la memoria interna del dispositivo, para guardar las configuraciones establecidas por el usuario.

El proyecto cuenta con una documentación extensa, tanto de línea como de bloque como de javadoc, documentación HTML incluida en el directorio doc.

Descargas

La entrada Mi primera APP para Android: Calculadora Básica aparece primero en el blog de giltesa.

]]>
https://giltesa.com/2012/12/01/mi-primera-app-para-android-calculadora-basica/feed 6 12859