Trabajar con fechas en sqlite

Las bases de datos SQlite no tienen el tipo date por lo que las fechas se tienen que guardar como text.

Si queremos trabajar con fechas para buscar las que cumplan que sean mayores a …. etc, podemos utilizar la conversión a fecha del tipo yyyymmddhhiiss

Dada una tabla con los valores de fecha y hora:
sqlite1

Podemos ejecutar una consulta como :

select fecha,hora,id
from notificaciones 
where substr(fecha,7)||substr(fecha,4,2)||substr(fecha,1,2)||substr(hora,1,2) ||substr(hora,4,2) ||substr(hora,7,2)
> '20150901140920'

Que nos devuelve uno tal y como se esperaba

Instalacion de cero en windows 7

Programas básicos que instalo nada mas formatear:

CutePDf para imprimir en pdf, pues en windows no es una opción predeterminada de los programas
http://www.cutepdf.com/Products/CutePDF/writer.asp

Irfanview, para ver las imagenes es liviano y permite operaciones basicas con las imagenes
http://www.irfanview.net/

Filezilla, gestor de ftp
https://filezilla-project.org/download.php?type=client

VLC, para poder ver los videos
https://www.videolan.org/

Paint.net para poder editar imagenes
http://www.getpaint.net/index.html

Entrada registro para limpiar carpetas svn

Vamos a ver como crear una entrada en el registro de windows para poder borrar todas las carpetas ocultas .svn que se generan cuando incluimos una carpeta en un repositorio SVN

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

Creamos un nuevo archivo de texto
svn_delete_1

Le ponemos la extensión .reg
svn_delete_2

Editamos el archivo
svn_delete_3

Una vez que hemos pegado el texto y guardado ejecutamos el archivo
svn_delete_4

Confirmamos que queremos modificar el registro.
svn_delete_5

Ahora nos aparece una nueva opción en el menu contextual del explorer que nos permite limpiar las carpetas .svn
svn_delete_6

 

Ahora para probarlo cogemos una carpeta con contenido oculto .svn

svn_delete_7
El proceso se pone a borrar las carpetas
svn_delete_8

Vemos como ha eliminado todas las subcarpetas
svn_delete_9

Redondear icono con pixelmator

Para dar un aspecto mas profesional al icono de una aplicación vamos a redondear los bordes, para ellos usamos el programa de mac Pixelmator.

Una vez que tenemos la imagen, tenemos que seleccionar todo

pixelmator1

Y definir la selección:
pixelmator2
Desplazamos la barra de suavizar hasta conseguir el efecto deseado
pixelmator3
Ahora vemos como nos aparece la selección con los bordes
pixelmator4
Invertimos la selección
pixelmator5
Y borramos el contenido seleccionado para que nos quite los restos del borde
pixelmator6
Ya tenemos nuestra imagen lista para exportar con el formato que necesitemos, en mi caso es un png pues el market permite transparencias.
pixelmator7

Primeros pasos GIT, ejercicio curso miriadax

Configuramos la cuenta de git:

git config --global user.name "Jose Javier Fernandez"
git config --global user.email josejavierfm@gmail.com

Comprobamos que se ha guardado bien:

git config --list

Clono el repositorio

git clone https://github.com/jquemada/random 

Ahora creo el repositorio en mi cuenta
github_1
github_2

Y subo el contenido que he clonado a mi repositorio
github_3

echo # random >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/josejavierfm/random.git
git push -u origin master

Y puedo comprobar como aparecen los archivos en el repositorio
https://github.com/josejavierfm/random
github_4

Pausar la música para notificar un evento

En la ultima actualización de la app de android Canta notificaciones se añade la característica de pausar la música si está sonando para que se oiga mejor la locución y después continuar con la música
Para que funcione son necesarios los objetos:

private AudioManager am;
boolean reanudarmusica;
am= (AudioManager) getBaseContext().getSystemService(Context.AUDIO_SERVICE);
		

Al principio probé el código:

am.setStreamMute(AudioManager.STREAM_MUSIC, true);
//escuchar la locución
am.setStreamMute(AudioManager.STREAM_MUSIC, false);

Pero no funcionaba.

El código que si funciona es:

if (am.isMusicActive()) {

   			Intent i = new Intent("com.android.music.musicservicecommand");

   			i.putExtra("command", "pause"); 
   			NLService.this.sendBroadcast(i);
   			reanudarmusica=true;
}   

Una vez que termina la locución, hay que volver a poner el sonido con:

if (reanudarmusica){
	       			Intent i = new Intent("com.android.music.musicservicecommand");

	       			i.putExtra("command", "togglepause"); 
	       			NLService.this.sendBroadcast(i);
	       			reanudarmusica=false;
}

Limpiar archivo html caracteres latinos y poner codigo html

Mediante un script sh vamos a limpiar un archivo html y cambiar los caracteres á por á

Creamos el archivo

nano limpiahtml.sh

Sustituimos los acentos y las ñ, tanto en mayuscula como en minuscula

sed1

echo "limpiamos el fichero $1"

sed -i -e 's/á/\á/g' $1
sed -i -e 's/é/\é/g' $1
sed -i -e 's/í/\í/g' $1
sed -i -e 's/ó/\ó/g' $1
sed -i -e 's/ú/\ú/g' $1
sed -i -e 's/Á/\Á/g' $1
sed -i -e 's/É/\É/g' $1
sed -i -e 's/Í/\Í/g' $1
sed -i -e 's/Ó/\Ó/g' $1
sed -i -e 's/Ú/\Ú/g' $1
sed -i -e 's/ñ/\ñ/g' $1
sed -i -e 's/Ñ/\Ñ/g' $1

Ahora damos permiso de ejecución

sudo chmod 777 limpiahtml.sh

Y solo nos queda probarlo

Con un archivo de texto como el siguiente

sed2

./limpiahtml.sh fichero.html

sed3

Vemos como el archivo ha cambiado todos los acentos y las eñes por sus caracteres codificados en html

Crear una copia seguridad servidor ftp con raspberrypi

Script para crear una copia de seguridad de un servidor ftp, comprimirlo en zip y posteriormente moverlo a una unidad compartida
Partimos de una carpeta donde tenemos los script de ejecucion, una carpeta local para guardar el zip y una carpeta tmp donde se descarga el codigo, para posteriormente comprimir y borrar

ftp_rasp_1

#!/bin/bash

now="$(date +'%Y%m%d')"

archivo="nombrearchivoFTP$now.zip"

cd tmp

wget -r --user=usuario_ftp --password=xxxxxxxx ftp://dominio[/html]/*

zip -r $archivo *

mv $archivo ../carpeta_local    //por ejemplo glu, segun la imagen

rm -rf *

cd ..

file="/home/pi/lacie/ok.txt"  //este fichero se utiliza para comprobar que la unidad compartida está montada

if [ -f "$file" ]

then

sudo mv /home/pi/ftps/carpeta_local/$archivo /home/pi/lacie/ftps/$archivo

        echo "movemos el archivo a lacie." // lacie es la carpeta montada que apunta al recurso compartido

else

        echo "lacie no montado"

fi