Mostrando entradas con la etiqueta Programacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programacion. Mostrar todas las entradas

20 de octubre de 2019

Remover las credenciales de TortoiseGit


Si tiene Tortoise Git instalado con las opciones por defecto y deseas remover las credenciales, debes ejecutar el siguiente paso:

Abrir ejecutar o Win+R:



Y ejecutar rundll32.exe keymgr.dll,KRShowKeyMgr


Sale un listado como el siguiente:



Solo selecciona la credencial a quitar, solo con el prefijo git:


 Confirmas y listo, cuando se haga el próximo comando de git, te pedirá de nuevo las credenciales.

Notas y referencias:







27 de febrero de 2016

Calendarios con Festivos - Update 1.1


El aplicativo  Calendario con Festivos de Colombia, estara disponible para su actualización desde el domingo 28 de febrero de 2015.

Disponible en Google Play Store: Calendario con Festivos



  • Mejoras:
    • Se agrega selector de mes*.
    • Se agregan botones para el cambio de año.






Notas y referencias

  • (*) El selector fue agregado dado el problema reportado por los usuarios al manejar el gesto de "touch" (arriba-abajo, viceversa) de cambiar el mes.

21 de febrero de 2016

Como generar un GUID en Oracle


Un GUID  (globally unique indetifier) es identificador único global, el cual es un numero pseudoaleatorio usado como llave primaria en bases de datos o para identificar componentes de software. Este GUID se refiere a la implementacion de UIID (universally unique identfier) identificador único universal. 

Para que el numero pueda ser leído (por humanos) se usa la siguiente representación:

123e4567-e89b-12d3-a456-426655440000

La base de datos Oracle tiene funcion SYS_GUID que genera el identificador (RAW) de 16 bytes, para ser usado se puede convertir en "String" de dos formas:

  • Usando la función "asciistr" select asciistr(sys_guid()) as guid from dual 
  • Usando la función "cast" select cast(sys_guid() as char(32)) as guid from dual

El cual genera un GUID como:

2C9BBAD3B7500068E0530A0E0F160068

Notas y Referencias:

3 de marzo de 2014

Log4j

Log4j es una libreria Java (algunos dicen Framework) que permite registrar (log) mensajes que se registran en un aplicativo.

Los mensajes tiene varios niveles de registro:
  • trace : maximo nivel de detalle, cualquier mensaje
  • debug :  para mensajes de depuracion
  • info : mensajes informativos
  • warn : mesajes de alerta por posibles problemas
  • error : errores en el aplicativo
  • fatal  : es igual que error, pero cuando el aplicativo ya no funciona mas.
Hay dos niveles que son para controlar la salida:
  •  off : para no mostrar lo mensajes.
  • all: mostrar todo los mensajes.
Ejemplo basico de uso y  configuracion:
+ + +
package org.andrexweb.logger; 

import org.apache.log4j.Logger; 

/**
 * Hello world!
 *
 */ 
public class App {
private static Logger LOGGER = Logger.getLogger(App.class);

public static void main( String[] args ) {
LOGGER.trace( "Hello World!" ); 
}
+ + +


27 de febrero de 2014

Service Layer Pattern

Es patron que define un capa de servicios en el cual limita un conjunto de operaciones disponibles para encapsular la logica de negocio de la de aplicacion, controlando las transaciones y coordinando la respuesta de las operaciones.

A modo de ejemplo podemos tener servicios para:
  • Guardar/Actualizar la informacion  DefaultRequestService (Servicio en cargado de actualizar la informacion)
  • Un servicio con las operaciones del negocio. DefaultOperationService (Servicio que se encargue de la logica del aplicativo, aprobar, rechzar cancelar... etc.)
  • Un servicio para integraciones. DefaultIntegrationService (servicio que se encargue de actualizar otros sistemas).
Con este patron de diseño se pueda duplicar un poco de codigo por intentar separar los servicios en capas.




Bibliografia:
Service Layer
Wiki - Service Layers Pattern


11 de febrero de 2014

FluentInterface


El termino FluentIterface es creado por Eric Evans y Martin Fowler, con el cual se crea un estilo de codigo mas fluido.

La intencion es que cuando se tenga que agregar multiples propiedades (no solo propiedades, tambien es aplicable a operaciones) a un objecto, este se haga de manera mas fluida.

Ejemplo:

    private void fluentInterface(Cliente cliente){
       
        cliente.nuevaOrden()
                .agregarItem(1, 20.3, "Peliculas Accion")
                .agregarItem(2, 10.4, "Pelicula Infantil")
                .procesar();

     }
    

     private void tradicional(Cliente cliente){
       
        Orden orden = new Orden();
        Item item1 = new Item(1, 20.3, "Peliculas Accion");
        orden.agregarItem(item1);
        Item item2 = new Item(2, 10.4, "Pelicula Infantil");
        orden.agregarItem(item2);
        cliente.agregarOrden(orden);
        orden.procesar();
    }



El ejemplo es basico, pero se da entender que significa FluentInterface, lo que se quiere hacer con esto es que el codigo sea facil de leer y entender. Y que todo se vea como una unidad.