ReceTas31-40
Secciones |
• HomePage • ¿Qué es e-ghost? • Proyectos • Herramientas • Documentos • Recetas • Cursos • Reuniones • Enlaces • Humor • GhostLog • Alternativas Libres • Contacto • Euskaraz • |
---|
Contenido
Las Recetas de la Abuela (31 a 40)
- En esta sección podremos ver los típicos truquillos que todo el mundo sabe pero nadie recuerda. Si quieres incluír una receta, infórmate en nuestra lista de correo cómo hacerlo. Si ya conoces cómo, introduce una nueva receta aquí.
Recetas, de la 31 a la 40
#Receta_40
'Título': Galeria de Fotos en PHP (Redimensionar Fotos)
'Autor/a': Txupete
'Prólogo': En muchos casos nuestras páginas personales quedan abandonadas por el escaso tiempo que disponemos frente al tiempo que requiere nuestra página. Por tanto a fin de aligerar ese trabajo aqui teneis una galería de fotos en php en la que lo único que hay que hacer será subir las fotos a una carpeta mediante un ftp.
El código en si lo que hace es leer una carpeta, crear una imagen pequeña de cada imagen (thumb) e ir colocando las imágenes en una tabla (en mi caso de tres columnas y n filas). Como veis el código es más o menos sencillo de modificar para que las características de la tabla sean las que mas os interese.
Para que este código funcione además de php vuestro servidor debe tener instaladas las librerías GD2.
Supongamos que las fotos están en la carpeta: /home/user/miweb/fotos/ dentro de esta carpeta crearemos otra carpeta llamada thumbs/ (/home/user/miweb/fotos/thumbs/) que será donde se nos creen las imágenes redimensionadas.
'Codigo':
<?php
function thumbjpeg($imagen) {
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande". $dir_thumb = "thumbs/";
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg", // el thumbnail se llamaría "tn_imagen1.jpg" $prefijothumb = "tn"; $camino_nombre=explode("/",$imagen);
// Aquí tendremos el nombre de la imagen. $nombre=end($camino_nombre);
// Aquí la ruta especificada para buscar la imagen. $camino=substr($imagen,0,strlen($imagen)-strlen($nombre));
// Aquí comprovamos que la imagen que queremos crear no exista previamente if (====fileexists($camino.$dirthumb.$prefijo_thumb.$nombre)) {==== $img = imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre
n");
// miramos el tamaño de la imagen original... $datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre
n");
// intentamos escalar la imagen original a la medida que nos interesa if($datos1 < $datos0){ $altura = 100; } else{ $altura = 125; }
$ratio = ($datos1 / $altura); $anchura = round($datos0 / $ratio);
// esta será la nueva imagen reescalada $thumb = imageCreate($anchura,$altura);
// con esta función la reescalamos imagecopyResized ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos0, $datos1);
// voilà la salvamos con el nombre y en el lugar que nos interesa. imagejpeg($thumb,$camino.$dirthumb.$prefijothumb.$nombre); }
}
?> <table border"0" width
"100%"> <?php $i=0; ?> <?php $handle=opendir("/home/user/miweb/fotos/")?> <?php while ($file = readdir($handle)):?> <?php if ($file===='.' and $file!
'..' and $file!'thumbs' and $file!
'index.php'):?>==== <?php if ($i0) {?> <tr> <?php } $imagen = $file; thumbjpeg($imagen); ?> <td width
"33%" align
"center"><a href"<?php echo ($file); ?>" target
"blanck"><img src"thumbs/tn
<?php echo ($file); ?>" border"0"></td> <?php $i++; if ($i3) {?> </tr> <?php $i=0; } ?> <?php endif?> <?php endwhile?> <?php closedir($handle)?> <? if ($i
1){?> <td width="33%"></td> <td width="33%"></td> <tr> <?php } ?> <? if ($i
2){?> <td width="33%"></td> <tr> <?php } ?> </table>
#Receta_39
'Título': Cómo conectar una tarjeta de video a la tele
'Autor/a': Bardok
'Prólogo': Bajarse pelis de Internet (de manera legal, por supuesto, como yo hago ;-) y verlas en el ordenador, está muy bien, pero... ¿no os molaría más verlas sentados en el sofá de la sala, en la tele? Y si tenemos Home Cinema, y se escucha el sonido por los 5 altavoces, aunque no sea Dolby... ¿no molaría también? Pues bueno, esta receta pretende que vayamos poniendo aquí nuestro "conocimiento" sobre cómo hacerlo con diferentes tarjetas de video, de modo que, si alguien lo sabe hacer con una tarjeta de video que no esté en la lista (yo empiezo con una GeForce 4), edite esta recetilla y lo meta. Pues eso.
'Tarjeta': Geforce 4, y tarjetas GeForce con conector S-Video
'Por': Bardok
'Modo':
La conexión es muy sencilla, siempre que dispongamos de una tele con Euroconector.
Lo primero que tenemos que hacer, es comprar un "kit de cables" (en Eroski, sección de informática, por 50 Eypos), que tenga: 1 conector S-Video a S-Video, 1 cable de Jack a Audio Stéreo a Audio Compuesto, un adaptador de S-Video/Video Compuesto a Euroconector.
Conectamos la salida S-Video de la tarjeta (que es como una PS/2, pero con un par de agujeros más), a la entrada S-Video del adaptador, y enchufamos el Jack de Auriculares de la tarjeta de sonido al adaptador para Audio Compuesto, y los dos canales del cable, a las entradas de audio del adaptador. Si tenemos otro sistema de altavoces mejor (Minicadena, Home Cinema), podemos enchufar el cable de Audio a la entrada Aux del sistema de sonido.
Ahora, enchufamos el Adaptador a la entrada de Euroconector de la tele, y encendemos el ordenador, seleccionamos en la tele "AV-n" (el número que sea el euroconector), y ¡tachan==== ¡Linux en la tele!====
Lo más probable, es que veamos todo en blanco y negro (a no ser que la tele soporte NTSC). Para ver el color (lo más probable es que pierda algo de color, pero bueno), editamos el XF84Config-4 (o como se llame en vuestro sistema), y en la sección "Device" de la tarjeta de video, añadimos:
Option "TVStandard" "PAL-B" (en la documentación de NVidia vienen los modos, dependiendo del país, aquí, PAL-B)
Reiniciamos, y ya está, en color... ahora ajustamos el volúmen (se oirá bajito en principio), ponemos nuestro reproductor favorito a pantalla completa, y ale, al sofá.
En este modo lo que hacemos es duplicar el contenido del monitor en la tele. Si queremos, podemos hacer que la tele sea una extensión del escritorio, pero eso, no sé hacerlo todavía ;-)
#Receta_38
'Título': Usar PostgreSQL como base de Datos en el proyecto de Java
'Autor': Yuki (aka Rubén Gómez)
'Origen': Sobre todo la pagina de PostgreSQL
'Pasos': 1. Instalar PostgreSQL y crear una Base de Datos. Yo he usado el codigo fuente para instalarlo copiado del INSTALL del .tar.bz2
Short Version
./configure gmake su gmake install adduser postgres mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test
Con esto tenemos creada la base de datos "test" en el directorio /usr/local/pgsql/data
2. Conseguir el driver para que java funcione con PostgreSQL. Para conseguirlo id a PostgreSQL Driver. Dependiendo de la version PostgreSQL y la de JDK que tengais os tendreis que bajar uno u otro. Yo lo guarde como postgresql.jar en /usr/local/pgsql/share/java/
3. Configurar el CLASSPATH. Poneis en el .bashrc de vuestra home algo como:
export CLASSPATH = /home/yuki/java/PROYECTO:/home/yuki/java/:/usr/local/pgsql/share/java/"
para que luego al compilar se encuentre el driver y vuestro proyecto.
4. Cargar el driver en Java:
try { Class.forName ("org.postgresql.Driver"); } catch (ClassNotFoundException e) { }
5. Conectar a la BD desde java.
try{ Connection db = DriverManager.getConnection("jdbc:postgresql://localhost:5432/test","", ""); } catch (SQLException e){ }
Espero que le sirva a alguien
#Receta_37
'Título': Como poner mysql para programar en java y que tire contra mysql
'Autor/a': Saladino
'Origen': Muchas paginas en google ahora mismo no recuerdo ninguna que haya resumido todo bien. 'Ayudita': Para cuando toque instalar mysql: Tutorial de Split sobre Mysql
'Objetivo':
Para toda esa gente que tiene que hacer el proyecto de java y sabe que deberia poder hacerlo en linux, con esta receta podra hacer programas que funcionen con una base de datos mysql.
'Pasos:'
1. Instalar mySQL y J2sdk y J2re(yo personalmente los J2.. me los baje de la pagina de blackdown)
2. Bajar el driver de conexion a mysql de jdbc. El driver se puede bajar aquí y se llama connector/J. La documentación del conector se puede ojear aquí
3. Se descomprime el archivo del driver y en una subcarpeta tenemos el driver en si que se llama mysq-connector-java-....-bin.jar, no tenemos mas que añadir el archivo .jar al classpath.
4. Una vez que esta metido el driver en el classpath le tenemos que indicar al server de mysql que acepte peticiones por tcp asi que vamos a /etc/mysq/my.conf y comentamos la opcion skip-networking.
5. Ahora ya solo hay que hacer codigo. En la clase en la que vayamos a hacer la conexion a la BD se mete un "import java.sql.*;"
6. Se carga el driver de la siguiente forma:
try { Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException e) { System.out.println("Unable to load Driver Class"); }
7. Una vez cargado el driver solo nos resta hacer la conexion con nuesta BD, supongamos que en mi propio ordenador(localhost) tengo un usuario llamado "java" con password "prueba" y que tiene acceso a la BD que necesitamos que se llama aplicacion. En ese caso la conexion se haria asi:
try{
String url = "jdbc:mysql://localhost/aplicacion"; Connection con = DriverManager.getConnection(url,"java","prueba"); Statement stmt = con.createStatement(); query="SELECT * FROM tabla"; ResultSet rs = stmt.executeQuery(query); rs.next(); variable = rs.getString("campo de la tabla"); rs.close(); stmt.close(); con.close(); }
catch(SQLException se)
{ System.out.println("SQL Exception: "+ se.getMessage()); se.printStackTrace(System.out); }
8. En caso de esperar mas de una linea por consulta habria que meter un bucle empezandolo justo antes de rs.next() y acabandolo antes de rs.close().
#Receta_36
'Título': Cómo saber al de cuánto toca runear «fsck», para que no nos pille en apuros
'Autor/a': Aida (ye-ye)
'Origen:' [1].
'Objetivo:'
Para aquellos que tengamos 1153&nIdPage
3 "journalism file system"
y nos guste estar siempre informados (y nos ocurran molestias como las que describe su autor), he encontrado un script escrito
en perl bastante simple que nos permite estar siempre al loro de cuándo toca el "chequeo automático
de las particiones" (file system check o fsck).
'Pasos:'
1. Bajarse el script que podemos conseguir de aquí
2. Darle permisos de ejecución:
$chmod +x mountinfo
Si queremos, podemos añadir el script a nuestra secuencia de arranque para que nos informe cada vez que entremos:
3. Mover nuestro script a /etc/init.d/
4. Añadirlo a la lista de demonios (xD como suena) para que se ejecute cada vez que entremos haciendo (estando en /etc/init.d)
$update-rc.d mountinfo defaults
'Observaciones:'
1. Ojeando un poquito el script me da que sólo vale para "ext 2/3", nada de ReiserFS ni XFS, si me equivoco.. a corregir, que para algo es wiki-peich :þ
2. Recordar, que el fsck se ejecuta en aquellas particiones, las cuales estén definidas de forma "auto" (se automontan al arrancar) en el archifo "/etc/fstab"
#Receta_35
'Tìtulo': Configurar modem Adsl USB de telefonica en SuSE 9.0 en 19 comodos pasos
'Autor/a': Miguel Zubiaga
Objetivo: Hacer funcionar el modem Mac System Messenger ADSL USB, distribuído en Europa por Vitelcom bajo la denominación de EPS 5002 USB. (pisapapeles azul de telefonica): Distribucion: SuSE 9.0; Kernel: 2.4.21-99-athlon; Nota: Hacer todo como root;
01-Desinstalar el paquete libusb 0.1.8beta q te viene por defecto con suse 9
02-Paquetes Necesarios:
linux-atm linux-atm-devel linux-atm-lib libglade libglade-devel libxml libxml-devel gcc make kernel-source modutils libusb 0.1.6-3 (http://prdownloads.sourceforge.net/accessrunner/libusb-0.1.6-3.i386.rpm?download) libusb-devel 0.1.6-3 (http://prdownloads.sourceforge.net/accessrunner/libusb-devel-0.1.6-3.i386.rpm?download)
03- Bajar el Cxacru-2003-10-05-src-tgz (http://prdownloads.sourceforge.net/accessrunner/cxacru-2003-10-05-src.tgz?download)
04- Colocar el Cxacru-2003-10-05-src-tgz en /usr
05- tar -zxvf cxacru-2003-10-05-src-tgz
06- cd /usr/src/linux
07- make mrproper
08- make xconfig y marcar todas las q te dice el manual (http://accessrunner.sourceforge.net/es/linux/manual.html#sec11) (Punto 9.2)
09- make dep
10- make oldconfig
11- make dep
12- cd /usr/cxacru
13- make
14- Al final el make devuelve un error, pero bueno, debe ser algo del panel de control ya q a mi el panel no me tira pero el adsl si, asi que que mas da.
15- Editar el /etc/hotplug/blacklist y añadir al final la linea "usbcam" (sin comillas).
16- Editar el /etc/cxacru , rellendando los campos IP_ADRESS y GATEWAY. (si utilizas Ip-fija, si no echar un vistazo al manual para saber cuales configurar)
17- Editar el resolv.conf para poner las DNS, pero jaja, ese fichero no existia. Asi q pille el resmgr.conf y lo copie renombrandolo como resolv.conf, lo edite, lo borre todo, y puse mis DNS:
nameserver x.y.z.v
nameserver x.y.a.s
18- cxstart.sh para conectar ADSL
19- cxstop.sh para parar ADSL
Mas informacion y rpms para distintas distribuciones/kernels : http://adslinux.iespana.es/adslinux/
#Receta_34
'Título': Cómo "purgar" los archivos de configuración de paquetes desinstalados sin --purge
'Autor/a': Álvaro Marín
Al hacer un 'apt-get remove paquete', como tenemos comprobado, no se borran los archivos de configuración o los rastros que deja dicho paquete en nuestro sistema. Para borrarlos, normalmente usamos el --purge. Pero qué pasa con los paquetes ya desinstalados y con los que no hemos usado dicha opción? Para borrar todos los archivos de éstos, bastará con ejecutar como root:
COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2} ' | xargs dpkg -P
Fuente: Knoppix Remastering HowTo
'Alternativa propuesta por:' Yuki (aka Rubén Gómez)
Fuente: Alguna parte del wiki de Ubuntu
El comando hace lo mismo, pero quizá sea más fácil de entender:
dpkg --purge $(dpkg -l | grep ^rc | cut -d" " -f3)
#Receta_33
'Título': Cómo configurar una tarjeta wireless USR 2210 de 22 mpbs (chipset Texas Instruments)
'Autor/a': Pedro Gutierrez
El software necesario es el paquete wireless-tools. Kernel 2.4.2?, dentro del kernel debemos activar las siguientes opciones
Network device support --> Wireless LAN (non-hamradio) --> * Wireless LAN (non-hamradio) PCMCIA network device support --> * PCMCIA network device support * Pcmcia Wireless LAN
Además hay que bajarse el driver acx100 de internet mediante CVS, lo que yo hice fue un apt-get install de cvs e introduje las siguientes líneas (http://acx100.sourceforge.net/download.html):
$ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/acx100 login $ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/acx100 co acx100
Cuando te pide el password pulsas enter. Ayer y hoy no me ha funcionado lo de bajarme el driver, igual tienen algún problema en el servidor.
Una vez ejecutadas esas dos líneas se nos habrá creado una carpeta acx100 en el directorio actual. Dentro de este directorio hay un directorio que se llama firmware, donde deberemos introducir tres ficheros que debemos obtener de windows (WLANGEN.BIN, RADIO0d.BIN y RADIO11.BIN), suelen encontrarse en windows/system32 o windows/system32/drivers.
Ahora compilamos el módulo "$ make " dentro de la carpeta acx100, cuando haya terminado ya tenemos el módulo compilado y sólo nos queda cargarlo, que se realiza de la siguiente forma: con la tarjeta PCMCIA introducida en la ranura(un paso importante :-DD), dentro del directorio acx100 ejecutamos:
$ insmod src/acx100pci.o firmwaredir=firmware
(aconsejo realizar la carga del módulo desde las X pq en la consola comienzan a salir un motón de letras q te la dejan un pelín tostada)
Bien ahora ejecutamos iwconfig wlan0 mode managed essid NOMBRE_AP (El mode managed en el caso de tener access point).
Por último un "$ ifup wlan0", wlan0 lo habremos definido en /etc/network/interfaces, cuando acabeis de utilizar la tarjeta yo hago un ifdown wlan0 (el driver no es perfecto, pero está currado ;-D).
#Receta_32
'Título': Router software con iptables: Cómo configurar una máquina GNU/Linux para que enrute el tráfico desde y hacia Internet
'Autor/a': Fernando Urien (Zefe), tomado de bulmalug
1º Activar el reenvío de paquetes:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Podemos comprobar que esté bien:
$ cat /proc/sys/net/ipv4/ip_forward 1
2º Limpiaremos las reglas del iptables:
# iptables --flush # iptables --table nat --flush
3º Activaremos el NAT con enmacaramiento en las reglas del iptables:
# iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE # iptables --append FORWARD --in-interface eth0 -j ACCEPT
Con tan sólo esto ya tendremos nuestro servidor linux, haciendo de proxy/router/gateway, de forma que podremos acceder desde cualquier ordenador a Internet. Evidentemente necesitaremos tener activado en el kernel el iptables, el módulo NAT y cargado este módulo:
modprobe iptables_nat.
Luego solo falta configurar los ordenadores clientes, poniendo como gateway la ip del servidor que acabamos de configurar.
#Receta_31
'Título': Cómo buscar en el diccionario de la RAE desde la shell
'Autor/a': Pablo Garaizar Sagarminaga (txipi), tomado de barrapunto
Muy fácil, pero muy chulo. Crea un script que se llame rae (o como te dé la gana) y guárdalo en un directorio que esté en tu path, con el siguiente contenido:
#====/bin/bash====
lynx -dump --nolist "buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_ HTML2&LEMA
"$1
Así, cuando tengamos alguna duda...
argon@txipi~$ rae feo
feo, a. (Del lat. foedus). 1. adj. Desprovisto de belleza y hermosura. 2. adj. Que causa desagrado o aversión. Acción fea. 3. adj. De aspecto malo o desfavorable. El asunto se pone feo. 4. adj. En el juego, se dice de las cartas falsas. 5. m. coloq. Desaire manifiesto y grosero. Le hizo muchos feos. 6. m. coloq. Col. Miembro de la Policía secreta. OS V. bicho feo sexo feo
Real Academia Española © Todos los derechos reservados
La última línea sucks un poco, pero bueno, así de rancios son los de la RAE ;-D
'Ampliación:' Yuki (aka Rubén Gómez)
Para que no salga la linea esa de "Real Acadameia Española Todos los derechos reservados" podemos añadir al script lo siguiente
| grep -v derechos
por lo que el script quedaría:
#====/bin/bash====
lynx -dump --nolist "buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML2&LEMA
$1 | grep -v derechos
'Puntualización de la Ampliación:' txipi
Podemos quedarnos con frases inconexas que contengan la palabra "derechos" si hacemos esto último, por ejemplo:
11. m. Consecuencia natural del estado de una persona, o de sus relaciones con respecto a otras. El derecho del padre Los derechos de la amistad
quedaría como:
11. m. Consecuencia natural del estado de una persona, o de sus la amistad
por lo que si queréis quitar el copyright, cosa que no deberíais hacer, podéis utilizar :
#====/bin/bash====
lynx -dump --nolist "buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML2&LEMA
$1 | grep -v "Real Academia Española © Todos los derechos reservados"