Preparant el curs de TableauSoftware.
Comparteixo alguns VIZs.
Les dades són reals, extretes de l'idescat.
dimarts, 1 de març del 2011
dilluns, 28 de febrer del 2011
Venda de vehicles a Catalunya
Amb les dades d'idescat he preparat aquest VIZ.
Les dades són reals, extretes de l'idescat. Naturalment l'autor del viz no es fa responsable de les conseqüències en l'ús d'aquests anàlisi.
Les dades són reals, extretes de l'idescat. Naturalment l'autor del viz no es fa responsable de les conseqüències en l'ús d'aquests anàlisi.
dijous, 17 de febrer del 2011
Evolució de la qualitat de la docència del meu crèdit SGBD.
El que em preocupa:
- Saber qui pensa que el conèixer BDD no li servirà a la professió d'informàtic.
- Detecto que els alumnes no s'estan sentint prou recolçats pel professor
- Haver baixat un 6,9%
dimecres, 19 de gener del 2011
diumenge, 9 de gener del 2011
video a l'ipod touch
Com ho he fet per transferir video a l'ipod touch:
1.- Baixar-te el video i convertir-lo. Aquí l'script que faig servir (l'he baixat no recordo de on). Nota: si l'ffmpeg o mencoder no té els codecs que necessites cal agegir el repositori medibuntu.
#!/bin/bash
quiet=""
passes="2"
codec="lavc"
bitrate="448"
bitratemax="960"
width="320"
height="240"
usage () {
echo "
Usage: `basename "$0"` [-q] [-1|-2] [-L|-H] [-b BITRATE ] [-m MAX_BITRATE] [-w WIDTH] [-h HEIGHT] MOVIE_FILE
-q Quieter output.
-1 Use 1 pass encoding.
-2 Use 2 passes (default).
-L Use lavc (default). Much quicker, but not as high quality.
-H Use h264. Slow, but high quality.
-b BITRATE Defaults to 448, 192 for low quality, 768 for high
-m MAX_BITRATE Defaults to 960, 768 for low quality, 1500 for high
-w WIDTH Defaults to 320, ipod screen width. Use 640 for tv out.
-h HEIGHT Defaults to 240, ipod screen height. Use 480 for tv out.
"
}
[ "$#" -lt 1 ] && usage && exit -1
while getopts "q12LHb:m:w:h:" Option; do
case "$Option" in
q) quiet="-quiet" ;;
1) passes="1" ;;
2) passes="2" ;;
b) bitrate="$OPTARG" ;;
m) bitratemax="$OPTARG" ;;
w) width="$OPTARG" ;;
h) height="$OPTARG" ;;
L) codec="lavc" ;;
H) codec="h264" ;;
*) usage; exit -1 ;;
esac
done
shift $(( $OPTIND - 1 ))
while [ "$1" ]; do
infile="$1"
! [ -f "$infile" ] && echo Error, file not found \"$infile\" && usage && exit -1
outfileP="${1%.*}.m4v"
outfile=`basename $outfileP`
num=1
while [ -f "$outfile" ]; do
echo "output file exists, adding number"
outfileP="${1%.*}-$num.m4v"
outfile=`basename $outfileP`
let "num += 1"
done
pass=0
if [ "$codec" = "lavc" ]; then
while [ "$pass" -lt "$passes" ]; do
let "pass += 1"
echo --- Pass $pass of $passes Pass LAVC Encoding ---
echo $outfile
echo $width x $height, $bitrate-$bitratemax
sleep 1
encopts="aglobal=1:vglobal=1:vcodec=mpeg4:vbitrate=$bitrate:acodec=libfaac:abitrate=128"
[ "$passes" -gt "1" ] && encopts="$encopts:vpass=$pass"
echo $encopts
sleep 1
mencoder "$infile" $quiet -ofps 30 -sws 9 -of lavf -lavfopts format=ipod \
-vf scale=-10:$height,dsize=$width:$height:0,harddup \
-ovc lavc \
-lavcopts $encopts \
-oac lavc \
-alang en \
-srate 22050 \
-o "$outfile"
EXIT_CODE="$?"
[[ "$?" != "0" ]] && exit "$EXIT_CODE"
done
elif [ "$codec" = "h264" ]; then
while [ "$pass" -lt "$passes" ]; do
let "pass += 1"
echo --- Pass $pass of $passes Pass H264 Encoding ---
echo $outfile
echo $width x $height, $bitrate-$bitratemax
sleep 1
encopts="bitrate=$bitrate:vbv_maxrate=$bitratemax:vbv_bufsize=2000:nocabac:me=hex:subq=4:frameref=2:trellis=1:level_idc=30:global_header:threads=auto"
[ "$passes" -gt "1" ] && encopts="$encopts:pass=$pass"
echo $encopts
sleep 1
mencoder "$infile" $quiet -ofps 30 -sws 9 -of lavf -lavfopts format=ipod \
-vf scale=-10:$height,dsize=$width:$height:0,harddup \
-ovc x264 \
-x264encopts $encopts \
-oac faac \
-alang en \
-faacopts mpeg=4:object=2:br=160:raw -channels 2 \
-srate 48000 \
-o "$outfile"
EXIT_CODE="$?"
if [[ "$?" != "0" ]]; then exit "$EXIT_CODE"; fi
done
fi
shift
done
2.- transferir el video amb gtkpod. El gtkpod l'engego amb aquest script:
#!/bin/bash
ifuse /media/ipod
gtkpod
fusermount -u /media/ipod/
abans cal haver creat /media/ipod a mà.
3.- Per que funcioni l'script: Medibuntu
sudo wget http://www.medibuntu.org/sources.list.d/`lsb_release -cs`.list --output-document=/etc/apt/sources.list.d/medibuntu.list && sudo apt-get -q update && sudo apt-get --yes -q --allow-unauthenticated install medibuntu-keyring && sudo apt-get -q update
sudo apt-get install ffmpeg libavcodec-extra-52
sudo apt-get install ffmpeg
diumenge, 26 de desembre del 2010
Dofus i adobe air
El Dofus utilitza aodobe air i no es deixava instal·lar a ubuntu 10.04.
La solució ha estat executar aquesta comanda quan demana reiniciar-se:
rm -fr /etc/opt/Adobe/certificates/crypt/
la solució l'he trobat en aquest foro:
http://ubuntuforums.org/archive/index.php/t-1138825.html
==============================
Unable to install Dofus on ubuntu 10.04:
Execute this command before dofus restart:
rm -fr /etc/opt/Adobe/certificates/crypt/
==============================
L'error:
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so
La solució ha estat executar aquesta comanda quan demana reiniciar-se:
rm -fr /etc/opt/Adobe/certificates/crypt/
la solució l'he trobat en aquest foro:
http://ubuntuforums.org/archive/index.php/t-1138825.html
==============================
Unable to install Dofus on ubuntu 10.04:
Execute this command before dofus restart:
rm -fr /etc/opt/Adobe/certificates/crypt/
==============================
L'error:
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so
dimecres, 14 de juliol del 2010
T-SQL Càlcul del dígit de control. Comptes CCC i comptes IBAN.
He hagut de fer "comprovacions" massives dels dígits de control dels comptes bancaris. He fet la programació al servidor per accelerar el procés.
Aquí us deixo el codi que genera dígits de control tant per comptes IBAN com per comptes CCC.
Recordeu que els DC sempre els ha de proporcionar el banc. No s'hi val a calcular-los.
Create function IBANAllGenerateDC (@IBANxx00 CHAR(34) )
returns CHAR(2)
as
begin
declare @RetVal CHAR(2)
DECLARE @Pais CHAR(4)
DECLARE @s AS VARCHAR(200)
DECLARE @iModValue AS INT
DECLARE @iDigit AS INT
DECLARE @i AS INT
SET @s = @IBANxx00
SET @s = Replace(@s, 'A', 10)
SET @s = Replace(@s, 'B', 11)
SET @s = Replace(@s, 'C', 12)
SET @s = Replace(@s, 'D', 13)
SET @s = Replace(@s, 'E', 14)
SET @s = Replace(@s, 'F', 15)
SET @s = Replace(@s, 'G', 16)
SET @s = Replace(@s, 'H', 17)
SET @s = Replace(@s, 'I', 18)
SET @s = Replace(@s, 'J', 19)
SET @s = Replace(@s, 'K', 20)
SET @s = Replace(@s, 'L', 21)
SET @s = Replace(@s, 'M', 22)
SET @s = Replace(@s, 'N', 23)
SET @s = Replace(@s, 'O', 24)
SET @s = Replace(@s, 'P', 25)
SET @s = Replace(@s, 'Q', 26)
SET @s = Replace(@s, 'R', 27)
SET @s = Replace(@s, 'S', 28)
SET @s = Replace(@s, 'T', 29)
SET @s = Replace(@s, 'U', 30)
SET @s = Replace(@s, 'V', 31)
SET @s = Replace(@s, 'W', 32)
SET @s = Replace(@s, 'X', 33)
SET @s = Replace(@s, 'Y', 34)
SET @s = Replace(@s, 'Z', 35)
SET @s = RTRIM(SUBSTRING(@s,7,34)) + LEFT(@s,4) + '00'
IF ( ISNUMERIC(@s) = 1 )
begin
SET @iModValue = 0
SET @i = 1
WHILE ( @i <= Len(@s) ) begin SET @iDigit = CAST( substring(@s, @i, 1) AS INT ) SET @iModValue = ((@iModValue * 10) + @iDigit) % 97 SET @i = @i + 1 end SET @iModValue = 98 - @iModValue IF (@iModValue > 9)
set @Retval = CAST ( @iModValue AS CHAR(2) )
ELSE
set @Retval = '0' + CAST ( @iModValue AS CHAR(1) )
end
ELSE
set @Retval = '99'
return @Retval
end
GO
Create function [dbo].[CCCgenerateDC] (@Entitat AS CHAR(4), @Agencia AS CHAR(4), @Compte AS CHAR(10) )
returns CHAR(2)
as
BEGIN
--from: http://www.bulma.net/body.phtml?nIdNoticia=1396
declare
@RetVal CHAR(2),
@aPesos AS CHAR(10),
@iDC1 AS INT,
@iDC2 AS INT,
@iX AS INT,
@iDigit AS INT,
@iResto AS INT,
@sEntOfi AS CHAR(8)
SET @aPesos = '0137498625' --cal sumar-hi 1
SET @sEntOfi = @Entitat + @Agencia
SET @iDC1 = 0
SET @iX = 8
WHILE (@iX > 0)
begin
SET @iDigit = SUBSTRING(@sEntOfi,@iX,1)
SET @iDC1 = @iDC1 + ( CAST( substring(@aPesos, @iX+2, 1) AS INT ) + 1 ) * @iDigit
SET @iX = @iX -1
END
SET @iResto = @iDC1 % 11
SET @iDC1 = 11 - @iResto
IF (@iDC1 = 10) SET @iDC1 = 1
IF (@iDC1 = 11) SET @iDC1 = 0
SET @iDC2 = 0
SET @iX = 10
WHILE (@iX > 0)
begin
SET @iDigit = SUBSTRING(@Compte,@iX,1)
SET @iDC2 = @iDC2 + ( CAST( substring(@aPesos, @iX, 1) AS INT ) + 1 ) * @iDigit
SET @iX = @iX -1
END
SET @iResto = @iDC2 % 11
SET @iDC2 = 11 - @iResto
IF (@iDC2 = 10) SET @iDC2 = 1;
IF (@iDC2 = 11) SET @iDC2 = 0;
SET @retval = CAST ( @iDC1 AS CHAR(1) ) + CAST ( @iDC2 AS CHAR(1) )
return @Retval
end
cat: T-SQL Càlcul del dígit de control. Comptes CCC i comptes IBAN.
esp: T-SQL Cálculo del dígito de control. Cuentas CCC i IBAN.
El codi es proporciona 'as is'. No hi ha garantia i l'executaràs sobre la teva responsabilitat.
Sigues lliure d'utilitzar aquest codi. Llicència GPL2.
Part del codi està traduit des d'altres llenguatges de programació. La font està resenyada al codi.
Aquí us deixo el codi que genera dígits de control tant per comptes IBAN com per comptes CCC.
Recordeu que els DC sempre els ha de proporcionar el banc. No s'hi val a calcular-los.
Create function IBANAllGenerateDC (@IBANxx00 CHAR(34) )
returns CHAR(2)
as
begin
declare @RetVal CHAR(2)
DECLARE @Pais CHAR(4)
DECLARE @s AS VARCHAR(200)
DECLARE @iModValue AS INT
DECLARE @iDigit AS INT
DECLARE @i AS INT
SET @s = @IBANxx00
SET @s = Replace(@s, 'A', 10)
SET @s = Replace(@s, 'B', 11)
SET @s = Replace(@s, 'C', 12)
SET @s = Replace(@s, 'D', 13)
SET @s = Replace(@s, 'E', 14)
SET @s = Replace(@s, 'F', 15)
SET @s = Replace(@s, 'G', 16)
SET @s = Replace(@s, 'H', 17)
SET @s = Replace(@s, 'I', 18)
SET @s = Replace(@s, 'J', 19)
SET @s = Replace(@s, 'K', 20)
SET @s = Replace(@s, 'L', 21)
SET @s = Replace(@s, 'M', 22)
SET @s = Replace(@s, 'N', 23)
SET @s = Replace(@s, 'O', 24)
SET @s = Replace(@s, 'P', 25)
SET @s = Replace(@s, 'Q', 26)
SET @s = Replace(@s, 'R', 27)
SET @s = Replace(@s, 'S', 28)
SET @s = Replace(@s, 'T', 29)
SET @s = Replace(@s, 'U', 30)
SET @s = Replace(@s, 'V', 31)
SET @s = Replace(@s, 'W', 32)
SET @s = Replace(@s, 'X', 33)
SET @s = Replace(@s, 'Y', 34)
SET @s = Replace(@s, 'Z', 35)
SET @s = RTRIM(SUBSTRING(@s,7,34)) + LEFT(@s,4) + '00'
IF ( ISNUMERIC(@s) = 1 )
begin
SET @iModValue = 0
SET @i = 1
WHILE ( @i <= Len(@s) ) begin SET @iDigit = CAST( substring(@s, @i, 1) AS INT ) SET @iModValue = ((@iModValue * 10) + @iDigit) % 97 SET @i = @i + 1 end SET @iModValue = 98 - @iModValue IF (@iModValue > 9)
set @Retval = CAST ( @iModValue AS CHAR(2) )
ELSE
set @Retval = '0' + CAST ( @iModValue AS CHAR(1) )
end
ELSE
set @Retval = '99'
return @Retval
end
GO
Create function [dbo].[CCCgenerateDC] (@Entitat AS CHAR(4), @Agencia AS CHAR(4), @Compte AS CHAR(10) )
returns CHAR(2)
as
BEGIN
--from: http://www.bulma.net/body.phtml?nIdNoticia=1396
declare
@RetVal CHAR(2),
@aPesos AS CHAR(10),
@iDC1 AS INT,
@iDC2 AS INT,
@iX AS INT,
@iDigit AS INT,
@iResto AS INT,
@sEntOfi AS CHAR(8)
SET @aPesos = '0137498625' --cal sumar-hi 1
SET @sEntOfi = @Entitat + @Agencia
SET @iDC1 = 0
SET @iX = 8
WHILE (@iX > 0)
begin
SET @iDigit = SUBSTRING(@sEntOfi,@iX,1)
SET @iDC1 = @iDC1 + ( CAST( substring(@aPesos, @iX+2, 1) AS INT ) + 1 ) * @iDigit
SET @iX = @iX -1
END
SET @iResto = @iDC1 % 11
SET @iDC1 = 11 - @iResto
IF (@iDC1 = 10) SET @iDC1 = 1
IF (@iDC1 = 11) SET @iDC1 = 0
SET @iDC2 = 0
SET @iX = 10
WHILE (@iX > 0)
begin
SET @iDigit = SUBSTRING(@Compte,@iX,1)
SET @iDC2 = @iDC2 + ( CAST( substring(@aPesos, @iX, 1) AS INT ) + 1 ) * @iDigit
SET @iX = @iX -1
END
SET @iResto = @iDC2 % 11
SET @iDC2 = 11 - @iResto
IF (@iDC2 = 10) SET @iDC2 = 1;
IF (@iDC2 = 11) SET @iDC2 = 0;
SET @retval = CAST ( @iDC1 AS CHAR(1) ) + CAST ( @iDC2 AS CHAR(1) )
return @Retval
end
cat: T-SQL Càlcul del dígit de control. Comptes CCC i comptes IBAN.
esp: T-SQL Cálculo del dígito de control. Cuentas CCC i IBAN.
El codi es proporciona 'as is'. No hi ha garantia i l'executaràs sobre la teva responsabilitat.
Sigues lliure d'utilitzar aquest codi. Llicència GPL2.
Part del codi està traduit des d'altres llenguatges de programació. La font està resenyada al codi.
dimarts, 20 d’octubre del 2009
¿Por qué modificar la ruta de los peatones y los ciclistas en la ciudad?
diumenge, 18 d’octubre del 2009
mvk2avi amb mencoder
Estic preparant un script per passar les pelis amb format mkv al format que millor s'ajusti al dispositiu amb que les vull visualitzar. Poso l'script que tinc escrit ara i ja publicaré les millores.
Deixo un link de documentació de mencoder.
#!/bin/sh
INPUT=$1
OUTPUT=$2
#codec
CODEC_MPEG4="-ffourcc divx -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=1200"
CODEC_XDIV="-ovc xvid -xvidencopts bitrate=1200"
#scale
SCALE_720="-sws 2 -vf scale=720:-3"
SCALE_352="-sws 2 -vf scale=352:-3"
SCALE_NTSC="-sws 2 -vf scale=::::::ntsc"
#lang
SLANG_SP="-slang eng"
SLANG_ENG="-slang eng"
#use external audio
#EXTERNAL_AUDIO="-audiofile audio$$.wav"
CODEC=$CODEC_XDIV
SCALE=$SCALE_720
SLANG=$SLANG_ENG
if [ -f "$INPUT" ]
then
if [ -n "$EXTERNAL_AUDIO" ]
then
mplayer "$INPUT" -ao pcm:fast:file=audio$$.wav -vc null -vo null
fi
mencoder "$INPUT" \
$CODEC \
$EXTERNAL_AUDIO \
-oac mp3lame -lameopts vbr=3 \
$SLANG \
$SCALE \
-o "$OUTPUT"
if [ -n "$EXTERNAL_AUDIO" ]
then
rm -f audio$$.wav
fi
else
echo "$INPUT no trobat"
fi
Deixo un link de documentació de mencoder.
#!/bin/sh
INPUT=$1
OUTPUT=$2
#codec
CODEC_MPEG4="-ffourcc divx -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=1200"
CODEC_XDIV="-ovc xvid -xvidencopts bitrate=1200"
#scale
SCALE_720="-sws 2 -vf scale=720:-3"
SCALE_352="-sws 2 -vf scale=352:-3"
SCALE_NTSC="-sws 2 -vf scale=::::::ntsc"
#lang
SLANG_SP="-slang eng"
SLANG_ENG="-slang eng"
#use external audio
#EXTERNAL_AUDIO="-audiofile audio$$.wav"
CODEC=$CODEC_XDIV
SCALE=$SCALE_720
SLANG=$SLANG_ENG
if [ -f "$INPUT" ]
then
if [ -n "$EXTERNAL_AUDIO" ]
then
mplayer "$INPUT" -ao pcm:fast:file=audio$$.wav -vc null -vo null
fi
mencoder "$INPUT" \
$CODEC \
$EXTERNAL_AUDIO \
-oac mp3lame -lameopts vbr=3 \
$SLANG \
$SCALE \
-o "$OUTPUT"
if [ -n "$EXTERNAL_AUDIO" ]
then
rm -f audio$$.wav
fi
else
echo "$INPUT no trobat"
fi
Subscriure's a:
Missatges (Atom)






