martes, 9 de octubre de 2012
Tutorial de PDL::Graphics::Gnuplot
Me encontré con un video de youtube donde explican cómo usar PDL::Graphics::Gnuplot. Interesante!! 15 minutos.
domingo, 23 de septiembre de 2012
Creciendo con Mojolicious
Una vez que nuestro proyecto con Mojolicious va creciendo, esto de tenerlo en un solo archivo se vuelve incómodo. Para separar los templates del código, ejecutamos:
./myapp inflateEsto creará un directorio "templates" y pondrá los templates en el lugar indicado. A partir de ahí se pueden seguir agregando templates y haciéndo referencia a ellos como siempre:
$self->render('login');
viernes, 10 de agosto de 2012
Como instalar perl+mojolicious sin root
Quiero empezar un proyecto nuevo, y quiero que el proyecto viva completamente en un directorio. Asi, cuando quiera ponerlo en producción, puedo copiar todo el directorio y listo. Vamos a ver si podemos hacer eso ( o terminaré con algo tipo PAR o FatApp ) pero el primer paso es instalar un nuevo perl y un nuevo Mojolicious en mi $HOME.
NOTA: Todos estos pasos se van a hacer como usuario, NO como root.
Primero instalaremos perlbrew:
curl -kL http://install.perlbrew.pl | bashLuego editarmos el archivo .bashrc y agregamos lo siguiente:
source ~/perl5/perlbrew/etc/bashrcSalimos de la sesión y volvemos a entrar, o ejecutamos "bash" para que se apliquen los cambios. Instamos la última versión de perl
perlbrew install perl-5.16.0La ponemos como default
perlbrew switch perl-5.16.0Opcionalmente podemos instalar cpanm, que es una versión menos verborrágica de cpan. Si no lo instalamos, cambiar cpanm por cpan en todo este tutorial
cpan App::cpanminusY ahora, instalar Mojolicious
cpanm Mojolicious
lunes, 6 de agosto de 2012
miércoles, 25 de julio de 2012
use FindBin;
Hola
Encontré este módulo útil que viene con perl (osea, no hay que bajarlo aparte, ya está instalado) llamado FindBin. Sirve para saber dónde está instalado el script que estamos ejecutando.
Por ejemplo, si queremos distribuir un programa que tiene un /bin con el script y un /lib con los modulos que usa ese script, podríamos poner en el script:
use lib '../lib'Pero eso funciona solo si ejecutamos el script desde el /bin.
cd /opt/donde_instalamos_el_programa/bin
./programa.plSi queremos que el programa se pueda ejecutar desde cualquier lado (como cualquier programa) se usa FindBin:
use FindBin;
use lib "$FindBin::Bin/../lib";Espero que les sea útil!
miércoles, 18 de julio de 2012
Consistent Ring Hashing
Acá hay un artículo donde se entiende qué es "Consistent Hashing" o "Consistent Ring Hashing".
Básicamente es una forma de saber en qué servidor puede estar un objeto de cache, mejor que hacer Numero de servidor % cantidad de servidores.
domingo, 15 de julio de 2012
Fatpacker
Otro bookmark: App:FatPacker mete las dependencias dentro de tu script. Todavía no vi cuán distinto es a PAR.
sábado, 14 de julio de 2012
Datatables: tablas para jquery
Bookmark para http://datatables.net/ , js para hacer tablas con una cantidad de plugins y extras.
viernes, 13 de julio de 2012
Mike Friedman: Building Scalable, Distributed Job Queues with Redis and Redis::Client
Siguiendo con los videos de YAPC::NA, un poco de Redis y perl.
jueves, 12 de julio de 2012
Jugando con tecnologías web
Acá hay un artículo de una persona que está haciendo un CMS con perl y un montón de javascript. Queda acá para que me acuerde de HumaneJS y PageDown.
domingo, 8 de julio de 2012
Codificación de headers MIME
Estaba mejorando mi programa que me canta los emails nuevos (por si me quiero desenchufar un poco, pero igual estoy esperando un email importante) y me encontré con que algunos asuntos están codificados con tipo:
Re: [CaFe-pm] =?utf-8?q?Blogs_en_Espa=C3=B1ol?=Rápidamente encontré un link donde dice qué módulo (estándard de perl desde 5.8 -- osea, desde hace mil años ) usar para descodificar:
use Encode qw/decode/;Devuelve "Re: [CaFe-pm] Blogs en Español" como debe ser.
$utf8 = decode('MIME-Header', "Re: [CaFe-pm] =?utf-8?q?Blogs_en_Espa=C3=B1ol?=");
viernes, 6 de julio de 2012
Módulo útil: Template::Extract
Template::Extract es como Template::Toolkit pero a la inversa: uno pone un template y un documento, y el módulo asigna las variables. Hermoso. En cualquier momento lo uso.
Programación lateral :)
Acá hay otra charla de YAPC::NA, esta vez de chromatic, hablando sobre no programar de la forma correcta. Osea, no tomar la solución "correcta" sino una alternativa. Algo así como "programación lateral"? :P
domingo, 1 de julio de 2012
Introducción a Perl Data Language
Perl Data Language es un conjunto de módulos de Perl para ciencia. Permite:
- Manipular matrices N-dimensionales fácil y rápidamente
- Leer distinots formatos de archivos (FITS, NetCDF, Fortran Unformatted, etc)
- Plotear imágenes (PGPlot, GnuPlot)
- Usar métodos numéricos (FFT, Simplex)
- Usar algunas funciones de las GNU Scientific Libraries
- Usar funciones de fitting
- La principal es el libro, PDL::Book.
- La página de tutoriales tiene varios, incluído PDL::Matlab para usuarios de Matlab y PDL::Scilab para usuario sde Scilab
- PDL::QuickStart, para novatos absolutos.
- David Mertens Introduction to the Perl Data Language, un video de su presentación en YAPC::NA, que les dejo acá.
sábado, 30 de junio de 2012
PDL y Big Data
En este artículo en inglés (en español gracias a Google Translate), David Mertens propone que PDL (el conjunto de módulos para física, astronomía y demás ciencias) bien puede ser usado para Big Data.
Ojalá tuviera un proyecto de esos para trabajar. Nom nom nom :)
Ojalá tuviera un proyecto de esos para trabajar. Nom nom nom :)
martes, 26 de junio de 2012
Mojolicious 3.0
Salió la nueva versión de Mojolicious
There are many new features, here are the highlights:
There are many new features, here are the highlights:
- TLS and IPv6: Support for both has been greatly improved.
- Commands: The command system has been completely revamped
- Plugins: Generator and CPAN upload commands make extending Mojolicious easier than ever
- Event loops: Mojolicious no longer needs to control the event loop
- Content negotiation: Write more RESTful web services
- JSON Pointers: Many features dealing with JSON got a lot smarter
- Flexible router: Routes can now be rearranged
- Flexible renderer: Serve templates and static files from as many DATA sections and paths as you like
- Asset plugins: Easily bundle assets such templates and static files with plugins
- Not found page: Is now actually a development tool.
- Hypnotoad: Doesn't require a separate configuration file anymore
- WebSockets: Fully RFC 6455 compliant
- Relaxed placeholders: Now look like "/#foo" instead of "/(.foo)"
- I18N plugin: Maintained as a separate distribution
sábado, 23 de junio de 2012
Stacktraces en perl
Mirando un video sobre debugging en perl de YAPC::NA, encontré el módulo App::Stacktrace. Una vez instalado, este módulo trae una herramienta de línea de comando llamada "perl-stacktrace", que genera un programa de gdb. Este programa de gdb nos permite ver stacktraces de un proceso de perl que está ejecutándose:
* perl-stacktrace -c <pid_de_perl>
Devuelve:
* perl-stacktrace -c <pid_de_perl>
Devuelve:
0x00007fb779b3b8e7 in flock () from /lib64/libc.so.6
#0 0x00007fb779b3b8e7 in flock () from /lib64/libc.so.6
#1 0x00007fb77ac88a8f in Perl_pp_flock () from /usr/lib64/perl5/CORE/libperl.so
#2 0x00007fb77ac39916 in Perl_runops_standard () from /usr/lib64/perl5/CORE/libperl.so
#3 0x00007fb77abd53e6 in perl_run () from /usr/lib64/perl5/CORE/libperl.so
#4 0x0000000000400f39 in main ()
proxy.pl:27
/usr/local/share/perl5/HTTP/Proxy.pm:216
/usr/local/share/perl5/HTTP/Proxy/Engine/ScoreBoard.pm:126
viernes, 22 de junio de 2012
Instalación de Mojolicious
Instalación de Mojolicious
Este mini-tutorial da los pasos para instalar Mojolicious y hacer una primera aplicación web.* Crear un directorio
mkdir proyecto
cd proyecto
* Instalar Mojolicious
cpan Mojolicious
* Crear una aplicación "Lite" (Mojolicious::Lite)
mojo generate lite_app "holamundo"
Genera un archivo myapp.pl.
* Probar que todo funciona, ejecutando la aplicación y visitándola con un navegador:
morbo ./holamundo
jueves, 21 de junio de 2012
Regexp::Debugger
Miren este video de Damian Conway explicando su nuevo proyecto: un debugger para Regexps. Útil para perl, python o lo que sea que las use!
Cómo me hubiera gustado estar en YAPC::NA !
viernes, 15 de junio de 2012
Suscribirse a:
Comentarios (Atom)