emporio armani,fake rolex for sale,rolex sea dweller,panerai,iwc,richard mille,replica watches,bell ross,a lange sohne,cheap replica watches,jaeger lecoultre,rolex explorer,corum,rolex milgauss,breguet,piaget,franck muller,chopard
Archives for category: Programación

Y por fin vio la luz….
Desde la vuelta de vacaciones de verano he blogeado menos, pero los que me conocen bien saben que he estado trabajando en el desarrollo de un software en Ruby on Rails. Llevo desarrollando este proyecto desde septiembre de 2008, y aunque el grueso se desarrolló antes de fin de año, no fue hasta la semana pasada que se produjo el lanzamiento oficial del site.

Se trata de Subastasde, un site dedicado a ofrecer información (tracking en realidad) de pisos y casas en subasta procedentes de embargos judiciales. Algunos ejemplos de lo que se puede encontrar:

El site no ofrece la posibilidad de pujar online, sino que se enfoca a un público profesional (subasteros básicamente), al que ofrece el seguimiento completo de los inmuebles que salen a subasta procedentes de los bancos. Después de la subasta si nadie lo ha comprado, el inmueble queda en estado de cesión durante un plazo corto de tiempo, que al expirar queda adjudicado a la entidad financiera. Entonces el banco tiene que venderlo a través de un API al modo de las inmobiliarias habituales.

En realidad no pretendo explicar aquí todo el detalle del proceso legal que sufren estos inmuebles. Lo que me interesa comentar es que este proyecto me ha dado la oportunidad de trabajar con una tecnología que era completamente nueva para mí.

Estoy orgulloso de poder decir que TODO el site es obra mía. Evidentemente he programado lo que los CEO’s me pedían, las ideas no han sido mías. Pero sí he programado toda la aplicación desde 0. He montado las bases de datos, he desarrollado los modelos y sus relaciones, los controladores, las vistas (compatibles IE6 y FFox a base de ostias), he aprendido Ajax (prototype y scriptaculous), javascript, he montado los servidores de desarrollo y de producción, con servicios que hasta ahora no había tocado… llevo un mes peleándome con los XML y otras técnicas SEO (I hate SEO!!), he aprendido Subversion y finalmente he migrado a Git. He tenido mi primer contacto con un sistema de tracking (usamos redmine)… y en definitiva puedo decir que mi vida como sysadmin poco a poco ha dado un giro radical desde hace un tiempo, una especie de metamorfosis o digievolución, para convertirme en coder de rails.
A todo esto, no puedo dejar de agradecer enormemente a mi amigo Mauro el tiempo y la paciencia que ha dedicado a ayudarme, cada vez que yo no me aclaraba con las API’s, cuando no tenía claro como debía hacer alguna cosa, o simplemente cuando caía en un agujero y no sabía como salir adelante. Gracias mussol :-)

Y en general todo esto me ha dado una ilusión nueva, me recuerda a mis inicios como administrador de sistemas, empapándome de documentación nueva cada día y peleándome con cada cosa que aprendía. Vuelvo a pasar las noches casi sin dormir, y siento que he recuperado la ilusión en un reto nuevo. Vuelvo a comprar libros, a leer listas de correo, a preocuparme por las versiones…
Y sé que hay muchísimos programadores mejores que yo, pero de eso se trata no? al fin y al cabo lo mismo pasa en sistemas.

Bien, así que a partir de ahora supongo que postearé más cosas relacionadas con Rails que con sistemas, y supongo que también iré informando de la evolución del proyecto, que dicho sea de paso tiene muy muy buena pinta.
Y ya sabéis, si queréis compraros un piso a la mitad de su precio de tasación, pasaos por Subastasde, porque cada día se incorporan nuevos inmuebles y algunos son verdaderos chollos.

Adjudicado! :-D

Se trata de una canción muy tonta en inglés, que cuenta desde 99 botellas de cerveza hacia atrás, repitiendo siempre la misma estrofa.
99 bottles of beer es un website GENIAL, en el que se expone un algoritmo que canta ésa canción, programado en cientos de lenguajes distintos (ahora mismo está en 1227 lenguajes).

Están los clásicos de toda la vida, yo me puse nostálgico con la versión en BASIC, ya que fue el primer lenguaje que programé en mi vida, cuando tenía 9 años y con un ordenador Amiga500.

También me hizo gracia la versión en C++, que me recordaba a la universidad. Y es que ahora se estudia java en mi antigua facultad, pero hubo un día en que allí estudiábamos hombres de pelo en pecho, y programábamos en C y C++.

Me han hecho gracia también las versiones en Ruby y en Python, los lenguajes de moda en el desarrollo web. Yo programo Ruby on Rails, y un poquito de Python tmabién, con Cherrypy y Cheetah. En realidad me gusta más el algoritmo en Python que en Ruby, pero claro, hay que contar con que está hecho en el lenguaje puro, sin el framework de Rails…

Curiosidad! me han encantado las versiones de procmail, de Asterix (s/ix/isk/), y de vim… como buen alma de sysadmin.

Y entre las rarezas me han llamado la atención Brainfuck, Whitespace y Cow, que son un verdadaero pain-in-the-ass.

Curiosa por cierto la versión en Perl, que viene ofuscada mediante un módulo del CPAN llamado Acme::EyeDrops (+ info).

En realidad no he querido buscar nada más, porque entre pasearme por los lenguajes y leer hilos e hilos de comentarios he pasado unas 2 horas anonadado. Así que cierro la página porque sino perderé el día entero.

Buscando una herramienta para exportar un dump de Oracle8 en formato SQL de texto plano, he encontrado el siguiente script, que sirve para enviar mensajes de correo desde línea de comandos CON FICHEROS ADJUNTOS usando sendmail:

#!/bin/ksh

# --------------------------------------------------------------------
# Script:	unix_mail_withattachments.ksh
# Aurthor:	Ravin Maharaj
# Purpose:	Use sendmail to e-mail messages from Unix with
#		file attachements
# --------------------------------------------------------------------

SUBJ="Send mail from Unix with file attachments"
TO=someone@domain_name
CC=someoneelse_1@domain_name,someoneelse_2@domain_name
(
cat << !
To : ${TO}
Subject : ${SUBJ}
Cc : ${CC}
!

cat << !
HOPE THIS WORKS
This sample E-mail message demonstrates how one can attach
files when sending messages with the Unix sendmail utility.
!

uuencode ${file_1}  ${file_1}
uuencode ${file_2}  ${file_2}
uuencode ${file_3}  ${file_3}
!
) | sendmail -v ${TO} ${CC}

Evidentemente falta probarlo con bash. Lo dejo aquí por si a alguien le interesa... yo por mi parte haré pruebas esta semana.

Lo cierto es que como gestor de contenidos para blogging WordPress está muy bien, sobretodo desde que en su segunda versión incorporó el editor wysiwyg. Aún así, sigo encontrando un gran fallo en la dificultad del mismo para la exposición de código. Sigo sin entender por qué no incorpora FCKeditor de serie, que es mucho más cómodo, completo y fácil de utilizar.

Sea como sea, ante la escasez de herramientas para el markup de código, he copiado los estilos del blog de pof para el tag pre. Espero que no le importe, pero conociéndole estoy seguro de que sus CSS son GPL :-D

Así, aunque siga sin poder anidar el código porque el editor no respeta los espacios ni los transforma a HTML, por lo menos se verá claramente lo que es código y lo que no:

#!/bin/bash
echo "Che mussol!     OvO"

cherrypy_logo.jpgHace tiempo que quiero empezar a programar python para entorno web, y un ex-compañero de trabajo de servidores.com me ha explicado algunas cosas (el resto lo estoy aprendiendo del Dive into python).

Entre otras cosas,me aconsejó usar Cherrypy como framework y Cheetah como gestor de plantillas. El problema lo he tenido para hacer funcionar el conjunto Cherrypy-Apache, ya que el framework de cherrypy incorpora un servidor web que recibe las peticiones en un puerto propio, y Apache debe gestionar el traslado de URLs (si se quiere que quede bonito). Es posible hacerlo con mod_python o con scgi, pero una manera simple y eficiente de hacerlo es con mod_rewrite, que es como yo lo he hecho.

Aclaro también (muy importante) que el editor wysiwyg de WordPress no me guarda las anidaciones en el código, así que debereis hacer caso al editor de texto si detecta el highlight y hace autoindent (vim lo hace perfectamente) porque es CRUCIAL, la diferencia entre que los ejemplos funcionen y que no funcionen.

Read the rest of this entry »