All posts by josejavierfm

Gestor de descargas en raspberry pi

Instalamos la herramienta FATRAT [WEB]

sudo apt-get install fatrat

Una vez terminada la instalación habilitamos la interfaz web modificando el fichero de configuracion

sudo nano /usr/share/fatrat/data/defaults.conf

Y configuramos el puerto, la clave y habilitamos el parametro remote=true

Captura de pantalla 2015-12-12 a las 10.34.52

Una vez lo hemos configurado arrancamos el programa

fatrat -n 

Ahora nos podemos conectar con un navegador:
Captura de pantalla 2015-12-12 a las 10.30.35

Captura de pantalla 2015-12-12 a las 10.31.59

Generar un numero aleatorio en sqlite

La función random() de sqlite devuelve un numero entre -9223372036854775808 y +9223372036854775807
Para obtener números solo positivos y con valores mas normales podemos utilizar la expresión:

ABS(RANDOM() % n_max)

Donde n_max indica el valor máximo que queremos para el random.

Ciclo de vida de actividad en android

Selección_005

En el caso de querer guardar estado antes de rotar la pantalla se utiliza el metodo onSaveInstanceState

Posteriormente cuando se vuelve a crear se llama al metodo onRestoreInstanceState despues de onStart()

public void onSaveInstanceState (Bundle outState) {
outState.putString("estadoactual", valorquequeremosconservar);
super.onSaveInstanceState(outState);
}

public void onRestoreInstanceState (Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
String valorqueteniaantes = savedInstanceState.getString("estadoactual");
hacer algo con el valor que tenia antes

}

Insert or update

Creamos una tabla con un varios campos.
unique1

Creamos un indice único sobre el campo email
unique2

Ahora insertamos el primer valor, lo importante es el email:
unique3

Ahora intentamos insertar un nuevo registro pero manteniendo el mismo email:
unique4

Evidentemente nos tiene que fallar, pues el indice único está funcionando
unique5

Por ultimo modificamos la consulta y le añadimos una condición para que nos actualice uno de los datos en el caso de intentar un insert con una clave unica, por lo que ya no nos dará el error:
unique6

insert into usuarios (nombre,email,clave,fechains) 
values ('Prueba duplicate','prueba@prueba.com','clavenueva',now())
on duplicate key update fechains=now()

Detectar tecla mayusculas pulsada al hacer click en un enlace

Si queremos que al pulsar en un elemento se comporte de manera distinta si tiene la tacla mayusculas pulsada lo podemos conseguir con Javascript:







	Si quieres que se comporte distinto manten pulsado "Mayusculas"
	



Ejemplo funcinando https://jsfiddle.net/Lu252r5z/

Tabla responsive hasta cierto tamaño

Tenemos una tabla formada por varias imágenes, queremos que las imágenes se reduzcan a medida que la pantalla disminuye, pero a partir de un determinado tamaño no queremos que se reduzcan mas,sino que salten de linea:

La tabla podría ser:





Tal y como está sin css el resultado seria:

responsive1

Ahora añadimos el css para hacerlo responsive:

#opcionesinicio{
    width:100%
}
 .img-responsive  {
           max-width: 100%; 
           width: auto;  
       }

Y el resultado es:
responsive2

Pero si la pantalla es muy pequeña las imagenes apenas se ven.
responsive3

Aqui es donde añadimos el codigo para que a partir de un tamaño la tabla se rompa

@media screen and (max-width:500px){
    
    #opcionesinicio td{
         float:left;
    }
}

responsive4

El resultado completo se puede ver en:

https://jsfiddle.net/18ko3yu8/

Precondiciones en liquibase

Voy a poner un ejemplo de como tener un changeSet en liquibase que quiero que se ejecute solo si cumple una determinada condicion, en este caso que se ejecute contra hsqldb ( en mi caso entorno de desarrollo ) pero que así no se ejecute en los entornos de PRE y PRO que son oracle.


onFail="MARK_RAN" onSqlOutput="TEST">















Lo importante aqui es la parte de preConditions marcando el atributo onFail=»MARK_RAN» para que cuando falle, no interrumpla la ejecución y el parametro onSqlOutput=»TEST», esto ultimo es muy importante, porque sino cuando invoques el perfil de maven updateSQL no tendria en cuanta la precondición, pues el valor por defecto es IGNORE. Con esto se fuerza a que al generar el SQL se compruebe la precondición.

 

Añadir google play services a proyecto Android en eclipse

Lo primero que tenemos que hacer es crear un proyecto a partir de código existente:
Captura de pantalla 2015-09-29 a las 17.33.06

 

Captura de pantalla 2015-09-29 a las 17.32.07

 

Buscamos el directorio de Google_play_services dentro de android_sdk/extras/google/Captura de pantalla 2015-09-29 a las 17.32.26

 

Tenemos que seleccionar solo el primer proyecto para importarCaptura de pantalla 2015-09-29 a las 17.32.52

 

Una vez lo hemos importado nos aparece un nuevo proyecto en eclipse:

Captura de pantalla 2015-09-29 a las 17.38.40

 

Ahora nos vamos al proyecto donde queremos añadir la dependencia y con el boton derecho abrimos las propiedades:

Captura de pantalla 2015-09-29 a las 17.39.40

 

En la pestaña Android pulsamos sobre Add en la seccion Library

Captura de pantalla 2015-09-29 a las 17.42.07

 

Elegimos el proyecto google-play-services-lib

Captura de pantalla 2015-09-29 a las 17.42.21

Una vez que lo hemos añadido nos muestra la rutaCaptura de pantalla 2015-09-29 a las 17.42.27

 

Y si vamos a la pestaña Java Build Path vemos que nos aparece la dependenciaCaptura de pantalla 2015-09-29 a las 17.42.44

 

Ya tenemos añadido en nuestro proyecto la libreria de google play services.