PDF de programación - Occam's Razon #2 2007

Imágen de pdf Occam

Occam's Razon #2 2007gráfica de visualizaciones

Publicado el 29 de Noviembre del 2019
65 visualizaciones desde el 29 de Noviembre del 2019
3,5 MB
40 paginas
Creado hace 12a (29/05/2007)
Occam’s
Razor

Número 2, Año 2007

Dirección:

David Martínez Oliveira

Editores:

David Martínez Oliveira

Fernando Martín Rodríguez

Colaboradores:

Fernando Martín Rodríguez,

Pablo Palazón, Julio I. Sorribes,

Gavin Mathews, Laura

Rodríguez González, Miguel
Pareja, Er Aplastao, Ssh el
Silencioso, Mr Anderson, Er

Tuneao, Er del Aberno y
Tamariz el de la Perdiz

Maquetación y Gráfismo

Publicidad

Occam’s Razor Direct

occams-razor@uvigo.es

Impresión

Por ahora tu mismo. . . Si te

apetece

c2007, The Occam’s Razor

Team

Esta obra está bajo una licencia

Reconocimiento-No

comercial-Compartir bajo la
misma licencia 2.5 España de
Creative Commons. Para ver

una copia de esta licencia, visite

http://creativecommons.org/
licenses/by-nc-sa/2.5/es/ o
envie una carta a Creative

Commons, 559 Nathan Abbott

Way, Stanford, California

94305, USA.

Editorial

El número 2... al fin
by The Occam Team

Pues eso. Al fin, aquí tenéis el número 2 de Occam’s Razor. Ha si-

do largo y duro (sí, ya sabemos lo que algunas mentes calenturientas están
pensando), pero esperamos que valga la pena y que sea de vuestro agrado.

Como comprobaréis enseguida, nuestros esfuerzo para tratar el uso de la tec-
nología en otros ámbitos distintos a la ingeniería o la informática, todavía no
han dado sus frutos. Pero no perdemos la esperanza. Una vez más animamos
a todos aquellos que utilicen cualquier tecnología en otros ámbitos a que nos
cuenten como lo hacen.
Así que, para este segundo número, hemos continuado los artículos del primer
número que prometían una segunda parte y añadido algunos más. Entre estos
últimos podemos destacar la introducción a la Dactiloscopia Digital que nos
ofrece el siempre ameno Fernando Martín, así como la colaboración de Pablo
Palazón y Julio I. Soribes que nos cuentan como conectarnos a redes windows
desde sistemas GNU/Linux.
Además, nos hemos arriesgado con un estilo peculiar en el artículo “Las Cróni-
cas de Matrix: Inventando al Agente Smith”. Esperamos que os resulte intere-
sante, y como siempre vuestros comentarios son el mejor indicador para hacer
que esta humilde publicación evolucione y siga siendo de vuestro agrado.
Nos gustaría hacer una merecida mención a la colaboración de Miguel Pareja
por toda sus labores de gestión del ISSN de la revista.
Finalmente, no podemos más que daros las gracias a todos por la buena aco-
gida del primer número tanto aquí en España como en Latinoamérica. Segui-
remos trabajando duro para mantener este proyecto vivo, aunque sea cada
seis meses :)

Esperamos que os guste este segundo número y nos leemos en el próximo.

The Occam’s Razor
Team

La imagen de la pluma utilizada en la editorial ha sido amablemente cedida por Txemi Jendrix
(http://www.txemijendrix.com/)
Las opiniones expresadas en los artículos, así como los contenidos de los mismos, son responsa-
bilidad de los autores de éstos.
Puede obtener la versión electrónica de esta publicación, así como el código fuente de la misma
y los distintos ficheros de datos asociados a cada artículo en el sitio web:
http://webs.uvigo.es/occams-razor

3| OCCAM’s Razor

RINCÓN DE LOS LECTORES

El Rincón de los lectores
Vuestros comentarios, sugerencias,...

por The Occam’s Razor Team

NETCAT

enviado por Vilius

Al leer el artículo del netcat, recordé un problema que
resolví una vez con netcat y que tiene mucho que ver
con la solución dada en “Como en las pelis”.
Aquí, proponéis la creación de un puente, que en rea-
lidad es unidireccional.
Supongamos el caso que tenemos una máquina, a la
que sólo se puede acceder a través del puerto 8000, y
que tiene un ssh instalado en el puerto 22, y que no
tenemos privilegios para cambiarlo. ¿Cómo podemos
con el netcat conseguir acceder? La solución pasa por
crear un puente bidireccional:
Mi propuesta para la creación de un puente bidirec-
cional es la siguiente:

Creamos el fichero puente.sh

#!/bin/bash
nc localhost 22 -q 1

En línea de comandos ejecutamos:

nc -l -p 8000 -e ./puente.sh

Con esto conseguimos que cuando conectemos al puer-
to 8000, se redirija lo que llegue al puerto 22 y a su
vez, lo que se responda desde el puerto 22, llegue a
quien hizo la petición.
Podemos hacer ahora ssh localhost -p 8000 y podemos
conectar al ssh.
Volviendo a la sección como en la pelis, ahora podria-
mos ejecutar esto en varias máquinas, conectándolas
entre sí, y ya tendríamos una conexión bidireccional
de princpio a fin, dando saltos a través de nodos in-
termedios.

Estupendo Vilius. Una aplicación muy interesante que
enlaza con la mala bestia de este número “ssh”

OPCIÓN PERDIDA

enviado por SLaYeR

SLaYeR ma nos apunta muy acertadamente

En el articulo de netcat, donde hacéis referencia a la
posibilidad de ejecutar un programa con la opción -c,
según mi netcat os equivocáis, la opción es -e. Com-
probad que no sea una errata.


OCCAM’s Razor | 4

SLaYeR, como bien dices, las últimas versiones de net-
cat ya no incorporan esta opción, si bien sigue estando
disponible en las versiones del programa incluidas en
varias distribuciones.
Para todos aquellos que queráis saber como implemen-
tar la famosa opción -c, no os podéis perder el artículo
de la sección “Mú Rápido” de este mismo número.

CON UN PAR DE LÍNEAS

enviado por Jesús Aneiros

Leo en la sección del asunto el siguiente ejemplo el
cual gasta un proceso por gusto y es merecedora del
premio UUOC:
http://partmaps.org/era/unix/award.html

cat mi_fichero | awk -e ’{print \$1,\$2}’

Como se ve el cat sobra si se pone el fichero como
argumento de awk.
Pero es que el awk tiene un error porque hay que im-
primir el valor de la columna 3 no el de la 2. Tampoco
es correcto escapar los $ pues ya usaron apostrofes y
finalmente la opción -e no hace falta.
Por otro lado el ejemplo de Perl como one-liner de-
ja mucho que desear pues se pudo escribir más corto
usando las opciones del lenguaje:

perl -ane ’print "$F[0] $F[2]\n"’ mi_fichero

Estupendo Jesús. La errata de awk ya la incluimos en
la web, pero la reproducimos aquí pos si algún lector
no la pudo ver.

VUESTRO APOYO

Desde aquí queremos agradeceros a todos, los mensa-
jes de felicitación y ánimo que nos habéis enviado a lo
largo de estos meses. Esperamos que este número os
guste tanto como el primero.

ENVIADNOS...

Vuestros comentarios, sugerencias, ideas, críti-
cas (constructivas claro), correcciones, solucio-
nes, disoluciones o cualquier cosa que se os ocu-
rra... a:

occams-razor@uvigo.es

LOS ESPERAMOS!!!!

RATAS DE BIBLIOTECA

Pon un poco de música en tu vida
Como reproducir ficheros MPEG en unas pocas líneas

por Er aplastao

Hace algunos años existió una empresa lla-

mada Loki que desarrollaba versiones de juegos
para Linux. La empresa finalmente quebró, pero
nos dejó algunas de las librerías que utilizaron
en estos ports. Una de ellas, llamada SMPEG,
nos permite reproducir ficheros MPG de forma
muy sencilla.

Aunque es mucho más divertido programar tu propio
decodificador de MPEG, muchas veces no se dispone
de tiempo o de ganas. Afortunadamente, siempre hay
alguien que ha echo el trabajo anteriormente. Si no,
date prisa y quizás te hagas rico :).
En esta ocasión vamos a utilizar la librería SMPEG
desarrollada por la compañía Loki, para escribir un
rudimentario reproductor de MP3 en unas pocas lí-
neas.

AL GRANO
Como solemos hacer en esta sección no le vamos a dar
vueltas al tema. Aquí tenéis el código del reproductor.

#include <s t d i o . h>
#include <SDL . h>
#include <smpeg / smpeg . h>

i nt
main ( i nt argc , char ∗ argv [ ] )
{
SMPEG
SMPEG_Info i n f o ;

∗mpeg ;

mpeg = SMPEG_new ( argv [ 1 ] , &i n f o , 1 ) ;
SMPEG_enableaudio ( mpeg , 1 ) ;
SMPEG_setvolume ( mpeg , 9 0 ) ;
SMPEG_play ( mpeg ) ;
while

( SMPEG_status ( mpeg ) == SMPEG_PLAYING)
{

SMPEG_getinfo ( mpeg , &i n f o ) ;
p r i n t f

( " Time %l f/ %l f \n " ,

i n f o . current_time ,
i n f o . t o t a l _ t i m e ) ;

SDL_Delay ( 1 0 ) ;

}

SMPEG_delete ( mpeg ) ;

}

Sencillo no?... Abrir, configurar, tocar y esperar :).
Bueno, el programa toma su primer argumento de la
línea de comandos y lo utiliza para crear un obje-
to SMPEG que será el encargado de la reproducción.
Luego, simplemente ponemos el volumen y le decimos

que empiece a tocar.
A continuación nos quedamos esperando en un bucle
que terminará cuando la librería haya reproducido el
fichero completo. La función SMPEG_status retorna-
rá SMPEG_STOP.
A modo de ejemplo, hacemos una llamada a la fun-
ción SMPEG_getinfo, dentro del bucle, para mostrar
en pantalla un mensaje de progreso en la reproduc-
ción, que actualizamos cada 10 milisegundos. El retar-
do dentro del bucle es importante para que la carga
del sistema no sea de 1.

SDL
La librería SMPEG se diseño para ser usada junto a
otra librería que se suele utilizar para el desarrollo de
juegos: SDL (Simple Directmedia Layer). De hecho,
“SMPEG significa SDL MPEG Player Library”
En nuestro ejemplo, estamos utilizando (aunque no lo
parezca) esta librería para la reproducción del sonido.
El tercer parámetro (’1’) en la llamada SMPEG_new
es el encargado de ello. Por esta razón, para que el pro-
grama funcione, es necesario linkarlo con esta librería.
Esto se consigue con el siguiente comando:

occam@razor $ gcc -o smpeg-test smpeg-test.c \
‘sdl-config --cflags‘ \
-lsmpeg ‘sdl-config --libs‘

Del resto ya se encarga SMPEG :).

VIDEO
Finalmente, comentaros que SMPEG es capaz de de-
codificar videos en formato MPEG-1. No vamos a in-
cluir un ejemplo de como se haría. Eso lo dejamos
para que os entretengais un poquillo y jugueis tanto
con SDL como con SMPEG.

“SMPEG fué diseñada para tra-
bajar con SDL”

Pero no nos vamos a ir sin incluir algunas pistas. En
primer lugar, tenéis que encontrar la forma de crear
una aplicación SDL con su ventana. En el sitio oficial
de SDL hay un buen tutorial para empezar.
Una vez que tengáis vuestra flamante ventana en pan-
talla, es el momento de ojear smpeg.h. Veréis que SM-
PEG os proporciona funciones para trabajar directa-
mente sobre estructuras SDL_Surface, con las que p
  • Links de descarga
http://lwp-l.com/pdf16990

Comentarios de: Occam's Razon #2 2007 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad