Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Marzo del 2018)
467 visualizaciones desde el 8 de Marzo del 2018
276,2 KB
14 paginas
Creado hace 19a (17/04/2006)
Periódico de la Comunidad Perl
de Capital Federal
http://cafe.pm.org/boletines/
CaFe Perl v1.0
CaFe Perl v1.0 - Periódico de la Comunidad
Perl de Capital Federal
Editorial
Sorpresa !!
Año nuevo vida nueva ... o por lo menos
formato nuevo.
Y sí, en este número cumplimos un año de
publicación así que van a encontrar un
diseño renovado y mucho más visual que el
anterior, con muchas más oportunidades
para sentirse cómodos :
• el cambio a dos columnas permite un
revisión más rápida y una lectura más
fluida
• Los artículos van a incorporar facilidades
de interpretación
• el motivo y los colores son similares al
de nuestro site (http://cafe.pm.org)
Y todo esto con el más absoluto costado
Open Source, ese que empezó allá en los
'50 con los primeros hackers del MIT, que
siguió con el
libre flujo de información y
desemboca en la aparición del Open Source
, ese mismo que hoy usamos y nos da tanta
libertad y satisfacciones.
Y de todo ese camino recorrido por el Open
Source nos cabe preguntar
: qué le
devolvemos nosotros a la comunidad Open
Source en retribución de todo lo que nos
da ?
Hasta la próxima taza de CaFe Perl !!! ...
eso sí, café del bueno ;-).
Víctor A. Rodríguez (Bit-Man)
POC (peace of code)
Autor: n3krodamus
shell :
Acá va un breve truco para la linea de
comandos de UNIX.
Los otros días se me presento la tarea de
procesar unas fotos que venían de una
cámara digital para ser publicadas en una
web, debido a que soy extremadamente
vago para hacer las cosas y no me gusta
hacer nada repetitivo mas de una vez; me
plantee como hacerlo en un "quick and
dirty" con perl en la linea de comandos. La
tarea era simple, dado un grupo de
imágenes con extensión .JPG tenia que
renombrarlas con un numero cada una y
pasar sus nombres a minúsculas. Las
imágenes provenientes de estas cámaras
digitales ya de por si tienen una numeración
pero a mi no me servía porque yo tengo un
template armado que lee las imágenes
desde 1..n y con las extensiones en
minúsculas.
Entonces paso a explicar la tarea a realizar :
1. Tengo que recorrer el
listado de las
imágenes en el directorio para poder
numerarlas.
2. Genero el nuevo nombre para la imagen,
en este caso el numero de orden (Ej: 1,
2, 3, n)
3. Armo la línea que el shell va a leer con el
DSC435.JPG
comando mv (Ej: mv
1.jpg)
4. Ejecuto la línea de comando con una
llamada al system
5. Me tomo un café viendo como la
máquina hace el trabajo por mi.
Acá esta la linea de código que corrí en el
perl -e 'foreach(`ls *JPG`)
{chomp; ++$a; $b=$_; s/^(\w)
+/$a/;system "mv $b ".lc($_)."
\n"; }'
Explicación: Primero se arma un bucle
foreach que recorre como un array el
resultado de un 'ls -l *JPG', ojo no
confundir "`" con "'" ya que el primero lo
que hace es redireccionar
la salida del
comando ejecutado hacia una variable y el
otro simplemente se usa para declarar
strings de texto, de esta manera leo los
nombres de todas las imágenes en el
directorio de extensión .JPG . Luego hago
un chomp para eliminar el "\n" al final de la
línea de los nombres de las imágenes, de
esa manera cuando armo la linea de
comandos no me inserta un "enter" al final
del nombre viejo. Lo que sigue es
incrementar un contador para generar la
numeración nueva, después de eso me
guardo el nombre viejo de la imagen que
quiero renombrar. Finalmente con una
expresión regular cambio el nombre viejo de
la imagen por el numero para armar el
nombre nuevo (recuerden que el \w lee
caracteres [a-zA-Z] y de esa manera en
el punto que separa la extensión se
detiene). Como último comando hago la
llamada al system armando el comando mv
con el nombre viejo primero (que lo habia
guardado en $b) y el lc (lowercase) del
nombre nuevo; el lowercase lo puse porque
la extensión todavía esta en mayúsculas.
Voila!! en una linea de código hice todo el
trabajo sin mayores esfuerzos.
GRACIAS Larry Wall.
PERlitas
Entrevista y traducción :
Víctor A. Rodríguez
Todos conocemos la importancia de un una
interfaz de línea de comandos, pero hay
alguien que no sólo lo sabe sino que
también añoraba un shell extinto hace
mucho denominado Visual Shell (vsh), tanto
como para devolverlo a la vida valiéndose
de
Perl
(http://www.cs.indiana.edu/~kinzler/vshnu).
Esa persona es Steve Kinzler.
magia
de
la
Por favor Steve, una introducción para el
grupo CaFe.pm
Es un honor y un placer hacerlo.
He estado programando Perl como parte
central de mi trabajo por cerca de 17 años,
primero para administrar sistemas en la
Universidad de Indiana (IU), y ahora para
aplicaciones Web/Internet en la IU.
También lo enseño como parte de un curso
que desarrollé en la IU en 1996.
Perl es, en resumen, como lo llamó un
colega, el “lenguaje de los dioses”. No hay
otro lenguaje que yo conozca que nos
pueda acercar tanto al regocijo creativo y la
alquimia
la
programación de computadoras.
También tengo cierta notoriedad en ciertos
círculos por crear y llevar adelante el
Internet
Oráculo
(http://www.internetoracle.org)
otros
proyectos que datan de mis años de
juventud (http://www.kinzler.com). De hecho,
una Oráculo en Español fue establecido en
Argentina después de mi visita, aunque no
estoy seguro de su estado actual1.
cognoscitiva
inherente
de
en
y
fue la motivación para construir
Cuál
"vshnu" ??
Esto viene de hace mucho. Yo comencé con
Unix en 1982 con Bell Labs Version 7.
Un día obtuvimos una cinta de software cool
para agregarle desde Berkeley. Ahí,
junto
con un nuevo shell llamado “csh”, había un
shell orientado a pantalla llamado “vsh”. Yo
cambié de “sh” a estos dos. Ahora
adelantando 18 años ... csh prosperó y
evolucionó en “tcsh”, pero “vsh” está
perdido y olvidado por todos excepto por mi.
No me quería dar por vencido, pero el
código fuente era tan obsoleto que no me
era posible seguir portándolo a los sistemas
operativos modernos. También recolecté
muchas mejoras a las ideas de “vsh”. Así
que puse a un lado mi holgazanería y
abordé
reimplementación
completamente nueva. Después de varios
experimentos, sabía que Perl encajaría muy
bien, aunque sabía iba a ser algo no
convencional.
Decidí
tratar de hacer este proyecto mi
pieza maestra de Perl (suceso que debo
dejar a otros juzgar).
una
Obtuvo alguna ayuda de otros proyectos
Open source (código,
consejos, horas de
programación, etc.) ?
Por supuesto -- ningún proyecto open
source se crea en el vacío. Pero el proyecto
vshnu está tratando de reclamar algo del
territorio perdido y expandir y reintroducirlo,
así que la ayuda fue más en término de
herramientas, ambiente e ideas prestadas
que
código,
de
programación.
consejos
horas
u
Qué habilidades (relacionadas con Perl o
no) ganó mientras construía “vshnu” ?
Habiendo aprendido Perl 3 y 4, adopté
tardíamente los estilos y convenciones de
Perl 5. Con vshnu, verdaderamente traté de
escribirlo a la forma de Perl 5, aunque
espero a que mucho del viejo estilo vaya
desapareciendo.
1 N. del T. : la dirección de e-mail para suscribirse al
en
Oráculo
http://cgi.cs.indiana.edu/~oracle/intl.cgi#argentina
no puede ser alcanzada, con lo que se considera
que está inactiva
Internet
figura
que
de
futuros
Qué consejo le daría a los
diseñadores y hobistas que encaran un
nuevo proyecto ?
Depende mucho de la personalidad de cada
uno. Para mi la visión del proyecto es lo que
me guía y me hacer meterme y atravesar el
proyecto independientemente de su alcance
y los desalentadores standards. Me imagino
a otras personas buceando en él y
trabajando
una
evolución dinámica sería otra aproximación.
Por supuesto, manteniéndolo divertido y
compensador.
haciendo
otros
con
desmenuzar
En qué partes del código aconseja mirar a
los recién iniciados en Perl, para tener una
experiencia educacional placentera ?
Ninguno en particular me viene a la mente.
Sugiero
archivos
(vshnu y vshnucfg.pl) y encontrar lo que les
atrape la curiosidad o el interés. Mi estilo de
Perl presta mucha atención a la disposición
creativa del código y el alineamiento
vertical, que encuentro ayuda a crear código
correcto y proveer satisfacción estética,
aunque a menudo puede romper con las
“mejores prácticas”.
ambos
y
son
forma
colaboraciones
bienvenidas,
Cómo se puede colaborar con "vshnu" ?
Contribuciones
cualquier
supuesto.
Hay
porque
personalmente no me encuentro con ellas,
tales como la integración con otros shells y
acciones sobre distintos tipos de archivos
con los que no trabajo.
subatendidas
en
por
areas
Hay oportunidad para mejorar el diseño en
las claves y comandos. También, y ahora
que está presente el
reconocimiento de
eventos de mouse,
toda el area de
comandos con mouse y acciones está
abierta para el diseño e implementación.
Más documentación también sería útil.
Qué funcionalidades cree que faltan, y
cuáles agregará en el corto plazo ?
Aparte del ya mencionado soporte de
mouse, estoy trabajando en mejorar el
sistema de ayuda, agrupando los comandos
por funciones, y generando una guía de
referencia (incluidas las personalizaciones
propias).
También estoy considerando opciones por
directorio,
ideas
misceláneas.
como
otras
así
Qué similitudes/diferencias encuentra con
proyectos similares ?
Mientras supongo que vshnu podría ser
comparado con Midnight Commander, el
dired de Emacs y otros, creo que es lo
suficientemente diferente en aproximación y
diseño como para estar en una categoría
propia. La integración de vshnu con un shell
común como bash o tcsh es importante, ya
que no se tiene por qué perder todo por
usar vshnu, debería agregar más poder al
que ya se está usando. Yo todavía hago
tanto en tsch como en vshnu, y trabajo con
ellos como dos modos de un solo ambiente
shell.
Qué límites impuso Perl al proyecto ?
Límites? Perl? Eso no conjuga.
Alguna opinión o consejo sobre Perl 6 ?
Aquellos que aman Perl ahora pueden
amarlo unas magnitudes más. Los que lo
odian pueden hacerlo unas magnitudes
más.
Sobre los que están trabajando en él, que
se tomen todo el tiempo que sea necesario
y que sus almas sean bendecidas.
Algún módulo favorito de CPAN ?
Hmmm, estaría en problema
Comentarios de: Cafe Perl Issue.v1.0 (0)
No hay comentarios