Entradas guardadas por 'Programación' ↓

Viernes con Xavier Noria

El pasado viernes, si el mismo días que salió al aire PlaceChannel, gracias a Factoría Web 2.0 pudimos estar con Xavier Noria.

Lo bueno de este día fue que Xavier no se dedicó darnos ninguna charla o taller como normalmente suele ocurrir (aunque se agradecen) si no que él en esta ocasión se dedicó exclusivamente a revisarnos el código y a darnos consejos sobre como mejorarlo.

No se como resultó la experiencia para el resto de grupos, pero a mi me resultó muy gratificante, pudiendo resolver algunas dudas propias con un punto de vista diferente al de mis compañeros y además recibiendo ayuda sobre cosas que no había caído que pudiesen estar mal, o que simplemente se podrías hacen mejor para seguir las convenciones de Rails.

Además se que el resto del equipo de Flowers enseñó a Xavier nuestro segundo centro de operaciones (también llamado Sloppy Joes).

GotAPI, explora decenas de API´s

Uno de los mejores descubrimientos que he hecho desde que estoy explorando el universo de Rails es GotAPI.

Gracias a esta páginas podrás buscar de forma sencilla y cómoda no solo dentro de la API de Ruby on Rails si no también en varias decenas más de lenguajes, frameworks y librerías.

Además lo mejor de todo es su buscador, el cual te sugiere en tiempo real posibles términos que estés buscando, desde luego un ejemplo de buen uso del AJAX.

Howto Restful Authentication

Seguro que en la mayoría de tus aplicaciones uses o no Rails tendrás que crear un sistema de registro y autentificación de usuarios, el cual, debido a que normalmente apenas cambia de una aplicación a otra suele ser bastante repetitivo y pesado implementarlo, eso sin contar de que para algunos puede ser bastante dificultoso.

En Ruby on Rails como no podía ser de otra manera hay disponible varios plugins para crear de forma seguro y sencilla estos sistemas, pero yo solo os hablaré de uno, Restful Authentication.

Este plugin además de ser muy sencillo de instalar nos permite varias configuraciones posibles, pero mejor de explicaroslas todas de golpe os iré mostrando como trabaja.

Continue reading →

Detalles de la API de Google Maps Static

Supongo que muchos ya habréis leído por diversos blogs la liberación de la API de Google Maps Static, si además estáis interesados ya habréis podido ver que la API solo nos deja introducir el punto central del mapa, y el zoom para obtener las imágenes, aparte de alguna que otra cosilla más.

Pero ya que Google nos brinda una herramienta en principio tan interesante como esa es una pena que no nos deje crear mapas de no mas de 512×512 pixels, pero con un poco de ingenio podríamos juntar varias imágenes para crear un “mega mapa”.

La complicación que encontramos aquí es la de saber cuanto se desplaza la imagen en la longitud y la latitud dependiendo del zoom. Qué yo sepa no hay forma sencilla de obtener estos datos, por lo que debemos tirar del gran método científico del acierto y del error.

Haciendo algunas pruebas pudo conseguir ya algunos datos, muy poquitos pero suficientes para hacer algunas pruebas. Para un zoom de 17 las variaciones son de:

Longitud: 0.005494
Latitud: 0.004168

Aquí os dejo un buen ejemplo para que veáis el código:

HTML generado, PHP utilizado

Lo suyo sería poder unir estas imágenes en un JPG o PDF, si estás cacharreando, ¿has obtenidos más datos para zooms distintos?

Edito:

Qué tonto, creo que tirando de la API de Google Maps habitual y un poco de javascript puedo sacar estos datos rápidamente, a ver is me da tiempo de hacerlo hoy.

Edito:

Si la relación entre zoom, pixels y geocode es la misma en el modo estático como en la dinámica ya tengo el modo de sacarlo, pero creo que tendré que esperar a mañana para mostrároslo :P

Rectifico:

Imposible, el método que uso no sirve, por lo visto esta relación varia dependiendo del punto geográfico, así que habrá que buscar otro método si quiero empapelar las paredes de mi casa :P

Cheat Sheet de Git

En el anterior post os hablaba sobre mi paso de SVN a GIT, al menos en algún que otro proyecto, encima desde hace un par de días en Del.icio.us un compañero me pasó un enlace hacia una Cheat Sheet de Git, una chuleta vamos.

Sin más aquí os la adjunto, ya que no he podido averiguar quien fue su creador a parte de que está alojada bajo un subdominio de KDE.org

git cheat sheet

Edito:

Por un comentario “anónimo” podemos saber que el blog de su autor es: Zrusin.Blogspot.com

Control de versiones

Desde hace bastante tiempo conozco lo que es el SVN, sin embargo solo lo he usado de manera ocasional para descargar el código fuente de alguna aplicación web o que debía ser compilada, pero nunca la había sido usuario activo de ella.

Desde hace unos días he tenido que aprender a usarlo para poder trabajar en equipo con Rails, sin embargo tanto mi compañera de equipo como yo hemos tenido múltiples problemas a la hora de “commitear” (subir al servidor) nuestro trabajo.

Además otro compañero estaba investigando GIT, otra herramienta de control de versiones, la usada por los chicos que mantienen el núcleo Linux y liberada no hace mucho.

No he podido usarlo mucho, pues estos días ha coincidido con reuniones y asuntos que quizás comente mas adelante, pero al menos lo poco que lo he usado no me dio problemas.

Continue reading →

Mis plugins habituales en Rails

En estos momentos ando en varios proyectos, alguno propio, otros con mayor peso y otros con menor (en realidad solo tres :P), pero en todos coinciden siempre los mismos plugins.

Estos son:

Este último no lo se usar bien, pero en los próximos días aprenderé porque ya va siendo hora de empezar a usar los tests.

El de Haml lo aconsejo sobre todo si estás un poco harto del HTML, este te permitirá crearlo de forma más limpia y sencilla, aunque eso si, como con todo tendrás que acostumbrarte, yo solo tardé 10 minutos, aunque eso no significa que lo controle del todo (ya quisiera).

A saco con Rails

Ya se que sobre noviembre comenté que me habia metido en un pequeño proyecto de software libre basado en CakePHP, pero no todo fue como yo pensaba, pocos días después entraba a formar parte del Proyecto Web 2.0.

El Proyecto Web 2.0 es un nicho de empresas para la creación de empresas por jóvenes universitarios con la ayuda de la Junta de Andalucía, la universidad de Sevilla y la empresas de programación Flowers In Space, la cual trabaja a día de hoy con el framework Ruby on Rails.

Por esto último casi todos los proyectos se decidieron realizar en Rails para poder además de aprender un nuevo lenguaje y framework tener el mejor asesoramiento sobre nuestro código.

En fin ahora estoy metido a saco con Rails y seguramente tendréis muchas noticias mías ya sea tan solo sobre Rails o sobre proyectos en los que participe con esta tecnología.

Continue reading →

Personalizando nuestra URL en CakePHP

Uno de los primeros problemas que me encontré en CakePHP fue que no sabia como hacer que las URL’s fueran de mi gusto, con la configuración que trae por defecto es muy sencillo crear módulos para nuestra aplicación quedando cosas como:

http://dominio.com/usuarios/ceritium

El problema es que yo quería hacer una aplicación en la que el usuario registrado tuviera una URL mas corta y sencilla, algo como:

http://dominio.com/ceritium

Para conseguir esto tendremos que modificar el archivor “routes.php” ubicado en la carpeta “config”, lo malo es que perderémos un poco de la mágia de Cake, pero no demasiada, ahora tendremos que especificar las rutas de los nuevos modulos a mano.

Tu routes seguramente será algo así:

// cake/app/config/routes.php


// Ruta por defecto
$Route->connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));

// Ruta por defecto a tus páginas
$Route->connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));

// Esta es la nueva linea que hace lo que queremos
$Route->connect('/*', array('controller' => 'users', 'action' => 'view'));

El problema de esto es que ahora pongas lo que pongas en la URL te llevará al controlador “users”, acción “view”, si queremos añadir mas módulos a nuestra aplicación solo tendremos que especificarlos así:

// Lleva al controlador "amigos"
$Route->connect('/amigos/:action/*', array('controller' => 'amigos'));

// Lleva al controlador "panel"
$Route->connect('/panel/:action/*', array('controller' => 'panel'));

No se si esta es la mejor manera pero a mí me funciona, además he visto que en Bakery recomiendan lo mismo.

EDITO: Que sí, si aún no sabes como sacar el id de tus usuarios con estas URL’s permanece atento o deja un post recordándomelo :P

Descubriendo CakePHP

No hace mucho lo mas “cul” de internet era programar en ROR (Ruby On Rails), el framework basado en Ruby, sin embargo existen multitud de frameworks parecidos sobre PHP.

Las ventajas de trabajar con frameworks en PHP son que la mayoría de los servidores gratuitos o compartidos corren alguna versión de este y que además la mayoría de los que han programado para la web lo han hecho en PHP por lo que no tienen la necesidad de aprender un nuevo lenguaje, aunque nadie te va a quitar tener que aprender la forma de trabajo del framework.

Entre todos los disponibles finalmente me quedé con CakePHP, no necesitaba ningún tipo de configuración en el servidor y obviamente basado en PHP.

Ya podré alguna lista de enlaces de manuales y recursos :D