jcatala.net

Compartint el coneixement

UNIX

GNU/Linux

Drupal i PHP

XHTML/CSS

Python

Android

Viatges

Off Topic



El meu Twitter El meu Flickr El meu Youtube El meu Instagram El meu Linkedin El meu Tumblr El RSS de la pagina
Logo Jcatala

Exemple d'slideshow jquery amb bxSlider

28 de Juliol de 2015 per joan

Ací deixe un exemple d'un slideshow que necessitava per a una webapp que estic desenvolupant. La llibreria és bxSlider. Aquesta és la captura de pantalla del resultat:

bxSlider exemple

Us deixo ací el codi html, css i javascript complet.

Instal·lant Dropbox a Debian 8 Jessie

27 de Juliol de 2015 per joan

Dropbox, eixe núvol tant popular però tant útil. Aquest article intentaré explicar breument i amb captures de pantalla com instal·lar-ho i tenir-ho en producció en la nostra computadora amb Debian 8 GNU/Linux Jessie. És molt senzill, tant com a Mac Os X o a Windows. Comencem des de la web de Dropbox. Per a instal·lar Dropbox anem a https://www.dropbox.com/install?os=lnx, en el meu cas em descarregaré el paquet .deb per a Debian 64bits.

Una vegada descarregat, executem el instal·lador:

dpkg -i dropbox_2015.02.12_amd64.deb

Dropbox a Debian 8 Jessie

Una vegada acaba el procés d'instal·lació, ja el trobarem dins del nostre sistema Debian, com per exemple jo la el veig amb el Gnome 3:

Dropbox

I una vegada l'execute, el programa s'inicia demanant-mos el registre o accedir amb les nostres credencials, mostrant una pantalla igual que aquesta:

dropbox

I finalment, en qÜestió de minuts (o hores, segons la mida de disc que tingues contractada amb Dropbox) tindrem el nostre sistema actualitzat i sincronitzat, i veurem tots els nostres fitxers al nostre ordinador dins de la carpeta /home/NOSTRE_USUARI/dropbox com aquesta captura de pantalla:

dropbox sincronitzat

Bloquejar el canvi d'orientació de pantalla a la nostra App Android

23 de Juliol de 2015 per joan

Si vols que la teua App Android no puga ser visualitzada en horitzontal o vertical quan l'usuari gira el telèfon/tablet perquè deforma el disseny de les teues pantalles, pots modificar AndroidManifesta.xml i afegir al activity l'argument android:screenOrientation="portrait".

Al meu cas, nomès vull que es visualitze en vertical (portrait) i queda així:

<activity android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
android:name="skateparks.MyPhoneGapActivity">

Si ho vols que nomès funcione en horitzonal hauries de ficar landscape.

Configurant resolució de pantalla a Debian Jessie amb xrandr

22 de Juliol de 2015 per joan

Avui, a la nova Debian 8 Jessie, tenia que configurar un monitor de 24 pulgades, i ho he fet amb xrandr a una resolució 1440x900 de la següent manera:

cvt 1440 900
xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00
xrandr --output VGA1 --mode  1440x900_60.00

i ja ho tenim ;-)

Debian Jessie

Configurant la xarxa wifi amb un dispositiu D-Link USB a Debian

21 de Juliol de 2015 per joan

Avui he instal·lat Debian Jessie i al configurar la xarxa, la interfície de l'ordinador era aquesta DWL-G122 Wireless USB, i per continuar amb el procés d'instal·lació cal instal·lar dos fitxers binaris no lliures que es troben al paquet oficial de Debian non-free anomenat firmware-realtek que el podeu trobar a la url següent: https://packages.debian.org/sid/firmware-realtek

Els fitxers que cal obtenir en eixe paquet tar són: rt73.bin i rtl8168g-2.fw. Una vegada els deixes a un llàpis USB, Debian els detecta i els carrega.

L'script que fa un backup però que envia també una còpia per FTP

11 de Juliol de 2015 per joan

Aquest és l'script millorat que ja vaig publicar el passat 7 de juliol que em feia una còpia de seguretat del meu procmail, fetchmail i mutt, doncs ara a més a més també envia una còpia del backup via FTP a un servidor.

# Preparació del script
#

clear
echo "#########################################################################"
echo "#########################################################################"
echo "#                    INICI DE LA CÒPIA DE SEGURETAT                     #"
echo "#########################################################################"
echo "#########################################################################"
echo "1 - Comencem amb la preparació de l'script"
sleep 1
mkdir /home/joan/Escriptori/copia_correu
DATA=$(date +"%Y%m%d")

#Copia de seguretat dels correus i configuracions de Mutt:
#

echo "2 - Copiem correus i configuracions del Mutt"
sleep 1
cp -rf /home/joan/Mail/ /home/joan/Escriptori/copia_correu/.
cp -rf /home/joan/.mutt /home/joan/Escriptori/copia_correu/.
cp /home/joan/.muttrc /home/joan/Escriptori/copia_correu/.

#Copia del Fetchmail i Procmail:
#

echo "3 - Copiem coses de Fetchmail i Procmail"
sleep 1
cp /home/joan/.fetchmailrc /home/joan/Escriptori/copia_correu/.
cp /home/joan/.procmailrc /home/joan/Escriptori/copia_correu/.
cp -rf /home/joan/.procmailrc  /home/joan/Escriptori/copia_correu/.

#Copia del Postfix:
#

echo "4 - Copiem la configuració del Postfix"
sleep 1
cp /etc/postfix/main.cf /home/joan/Escriptori/copia_correu/.

# Creació del fitxer final
#

echo "5 - Creem un tar.gz de tot"
sleep 1
tar cfz /home/joan/Escriptori/$DATA.bk_correu.tar.gz /home/joan/Escriptori/copia_correu/.
rm -rf /home/joan/Escriptori/copia_correu/

# Una vegada està creat el tar.gz, el pujem al nostre servidor en xarxa via FTP
#

echo "6 - Configurem host, usuari i contrasenya del nostre FTP"
sleep 1
FTPHOST="jcatala.net"
FTPUSER="USUARI"
FTPPASS="CONTRASENYA"
MEDIAFILE=/home/joan/Escriptori/$DATA.bk_correu.tar.gz

if [ -r $MEDIAFILE ]
# L'arxiu existeix i té permisos d'escriptura
echo "7 - Comprovem que tenim permisos d'escriptura al FTP"
sleep 1
then
echo "8 - Comprovem usuari i contrasenya, i pujem les dades al FTP"
sleep 1
ftp -n $FTPHOST <<END_SCRIPT
quote USER $FTPUSER
quote PASS $FTPPASS
cd .
bin
put $MEDIAFILE $DATA.bk_correu.tar.gz
quit
END_SCRIPT
fi

echo "9 - Les dades han segut pujades al FTP correctament"
sleep 1

# I finalment, ens notifiquem la finalització de l'script enviant correu electrònic
#

echo "10 - Finalment, enviem la notificació per correu electrònic"
echo "#########################################################################"
echo "#########################################################################"
echo "#                   CÒPIA REALITZADA CORRECTAMENT                       #"
echo "#########################################################################"
echo "#########################################################################"
sleep 1
/usr/bin/mutt -s "Base de dades realitzada correctament" -- joan@riseup.net < /dev/null

Script que fa còpies de seguretat del correu al meu Debian GNU/Linux

7 de Juliol de 2015 per joan

Ací unes línies que còpien cada dia el meu Mutt i configuracions, el meu fetchmail i procmail, i la configuració del Procmail a Debian GNU/Linux. Finalment, em genera un fitxer tar.gz amb la data del dia de la còpia.

# Preparació del script
#

mkdir /home/joan/Escriptori/copia_correu
DATA=$(date +"%Y%m%d")

#Copia de seguretat dels correus i configuracions de Mutt:
#

cp -rf /home/joan/Mail/ /home/joan/Escriptori/copia_correu/.
cp -rf /home/joan/.mutt /home/joan/Escriptori/copia_correu/.
cp /home/joan/.muttrc /home/joan/Escriptori/copia_correu/.

#Copia del fetchmail i procmail:
#

cp /home/joan/.fetchmailrc /home/joan/Escriptori/copia_correu/.
cp /home/joan/.procmailrc /home/joan/Escriptori/copia_correu/.
cp -rf /home/joan/.procmailrc  /home/joan/Escriptori/copia_correu/.

#Copia del postfix:
#

cp /etc/postfix/main.cf /home/joan/Escriptori/copia_correu/.

# Creació del fitxer final
#

tar cvfz /home/joan/Escriptori/$DATA.bk_correu.tar.gz /home/joan/Escriptori/copia_correu/
rm -rf /home/joan/Escriptori/copia_correu/

Llistar més de 50 nodes a la gestió de continguts de Drupal

1 de Juliol de 2015 per joan

Per a obtenir un llistat de més de 50 nodes a la secció de la gestió de continguts del Drupal, que és la llista que aquest gestor ens dóna per defecte, podem editar el node.admin.inc i modificar '50' per la quantitat que necessitem, i ho farem on apareix la següent línia:

$result = pager_query(db_rewrite_sql('SELECT n.*, u.name FROM {node} n '. $filter['join'] .' INNER JOIN {users} u ON n.uid = u.uid '. $filter['where'] .' ORDER BY n.changed DESC'), 50, 0, NULL, $filter['args']);

I també ens cal modificar el '50' a la línia:

$form['pager'] = array('#value' => theme('pager', NULL, 50, 0));

Transformant els camps de data dels nodes de Drupal a dates amb format des de MySQL

25 de Juny de 2015 per joan

Drupal enmagatzema els camps de dates a les taules amb un format integer, aleshores quan volem mostrar alguns resultats fent consultes a les bases de dades, obtenim resultats difícils d'entendre com aquest:

mysql> SELECT nid, type, status, created FROM node limit 10;
+------+----------------+--------+------------+
| nid  | type           | status | created    |
+------+----------------+--------+------------+
| 1040 | portales7_node |      1 | 1334059183 |
| 1041 | portales7_node |      1 | 1346847276 |
| 1042 | portales7_node |      1 | 1320322004 |
| 1043 | portales7_node |      1 | 1220440020 |
| 1044 | portales7_node |      1 | 1334145835 |
| 1045 | portales7_node |      1 | 1294056930 |
| 1046 | portales7_node |      1 | 1246437799 |
| 1047 | portales7_node |      1 | 1338466543 |
| 1048 | portales7_node |      1 | 1343808035 |
| 1049 | portales7_node |      1 | 1318250363 |
+------+----------------+--------+------------+
10 rows in set (0.00 sec)

mysql>

Amb la funció FROM_UNIXTIME() podem transformar els camps integer a un camp de data amb format, i ja podem explotar la informació més fàcilment:

mysql> SELECT nid, type, status, FROM_UNIXTIME(created) FROM node limit 10;
+------+----------------+--------+------------------------+
| nid  | type           | status | FROM_UNIXTIME(created) |
+------+----------------+--------+------------------------+
| 1040 | portales7_node |      1 | 2012-04-10 13:59:43    |
| 1041 | portales7_node |      1 | 2012-09-05 14:14:36    |
| 1042 | portales7_node |      1 | 2011-11-03 13:06:44    |
| 1043 | portales7_node |      1 | 2008-09-03 13:07:00    |
| 1044 | portales7_node |      1 | 2012-04-11 14:03:55    |
| 1045 | portales7_node |      1 | 2011-01-03 13:15:30    |
| 1046 | portales7_node |      1 | 2009-07-01 10:43:19    |
| 1047 | portales7_node |      1 | 2012-05-31 14:15:43    |
| 1048 | portales7_node |      1 | 2012-08-01 10:00:35    |
| 1049 | portales7_node |      1 | 2011-10-10 14:39:23    |
+------+----------------+--------+------------------------+
10 rows in set (0.00 sec)

mysql>

Un script que em diu la informació bàsica que em cal per als equips de la meua feina

25 de Juny de 2015 per joan

I ací el codi del dia, un script que vaig fer el dilluns per als equips amb Windows de la feina, perquè sempre em cal saber aquestes dades en multitud d'ordinadors, aproximadament 300 ordinadors amb distintes versions de Windows, Java, etc.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#

import platform, subprocess, socket, getpass, sys, os
from urllib2 import urlopen

# Quin sistema operatiu? Quina versió del sistema? Quina xarxa?
#
 
print
print 'Nombre de Usuario   :', getpass.getuser()
print 'Sistema             :', platform.system()
print 'Version             :', platform.version()
process = os.popen('wmic memorychip get capacity')
result = process.read()
process.close()
totalMem = 0
for m in result.split("  \r\n")[1:-1]:
    totalMem += int(m)
print 'Memoria RAM total   :', totalMem / (1024**3), 'Gigas'
print 'Nombre de la red    :', platform.node()
print 'IP local            :', str(([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][:1])).replace("['", "").replace("']", "")

print 'IP publica          :', urlopen('http://ip.42.pl/raw').read()
print
print 'La version de Java es: '
sp = subprocess.Popen(["java", "-version"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print sp.communicate()
print sp.wait()
print

joan-en-riseup.net copyleft © 2001-2015

Todo Benicassim - Todo Oropesa - Tutmonde - Veterinaria Oropesa

desenvolupat amb Drupal