tus camisetas frikis en camisetafriki.com

Archive

Archive for July, 2009

[CP2k9: Jueves] Fin de plazo

July 31st, 2009 View Comments

HoyAyer finalizaba el plazo de entrega de las aplicaciones para Nokia N97. Participamos Mou y yo haciendo un widget que te muestra los 10 lugares más cercanos a tu ubicación que tienen artículo en wikipedia, lo cual significa que puedes leer acerca de los monumentos y lugares importantes que tienes alrededor en un momento dado. Además, le añadimos la posibilidad de ver fotos sacadas de panoramio tomadas cerca de donde estás. Esta aplicación se llama GeoTurista y espero que se haga popular :)

Si la mejoramos un poco podría entrar a la tienda Ovi Store de Nokia

También mejoramos el arduino pong de ayer poniendo un accelerómetro en la protoboard para jugara como si fuera un mando de Wii, mañana os lo enseño

geoturista1

geoturista1

geoturista2
geoturista3

geoturista3

[CP2k9:Miercoles] Un poco tarde!

July 31st, 2009 View Comments

Buenas, estoy escribiendo este post pero en realidad es de ayer

Me pasé el día con la aplicación para el concurso de Nokia y salvo el taller de arduino donde hicimos un pong manejado por un controlador hardware de arduino que contaba con dos potenciómetros, no presté atención a mucho más.

Os dejo un vídeo aunque no se ve muy bien, es la pantalla del pong y la placa arduino conectada a modo de controlador con dos potenciómetros para mover las palas.

[CP2k9:Martes] Dia de charlas y talleres

July 29th, 2009 View Comments

campus-party-nokia-widgets

Hoy es el segundo día, el primero oficial desde la inauguración anoche a las 00:00. Hoy ya había unas cuantas charlas y talleres interesantes, entre los que destaco las de Arduino, que es una placa para prototipos hardware la mar de interesante, opensource y barata con la que trastear con componentes electrónicos, comunicaciones, leds y demás experimentos electroculinarios.

Por otra parte también han habido unas cuantas charlas interesantes de videojuegos así como la showcase de proyectos de juegos que participan este año, estos son los juegos que se han desarrollado durante más tiempo y fuera de la campus, no como la de fast programming que empezó ayer con unos cuantos temas a elegir y de la que se dispone de 72 horas para crear un juego con los temas propuestos, y que sinceramente, me parece un infierno, ya que participé el año pasado y me perdí muchas cosas interesantes de la party aunque también aprendí unas cuantas y salió un amago de juego que pienso portar al iPhone con mi nuevo Mac y forrarme muahahaha!

Por otra parte quiero dejar constancia de lo cerda que es la gente, que no se puede ir al vater agusto sin que huela a mierda y esté todo meado por fuera y los zurullos flotando, por favor, ¿la gente hace esto en su casa? Un poco de civismo por el bien común, a nadie le gusta que las cosas estén asquerosas. En cambio un punto a favor de la chica que limpia una de las zonas de baños, que no podía ser más guapa :)

Por mi parte, estamos participando Mou y yo en el reto de Nokia para hacer widgets para el N97 y la verdad es que parece muy sencillo y espero que ganemos un terminal (pour moi) y parece ser que también habrá pasta a repartir :D

Categories: CampusParty, Tecnología Tags:

[CP2k9:Lunes]Estamos en la Campus Party 2009!!

July 27th, 2009 View Comments

Ya estamos en la campus! Nos ha costado un montón de horas desplazarnos de Madrid hasta aquí, montar los equipos, montar la tienda de campaña. y hacer la compra. Hace apenas 20 minutos que se ha inaugurado esta nueva edición que intentaré ir narrando por aquí los días sucesivos. Mientras tanto, puedes ver en la parte superior de esta entrada, la gadget de campus tv donde se irán emitiendo los eventos de la party.

De momento he fijado mi ojo en varios concursos de desarrollo pero esta vez no haré la tontería de pasarme 3 días programando sin poder ir a nada. Esta vez solo 2.

De momento voy a ir enredando con los Nokia Widgets mientras planeo a que charlas voy a ir, que serán casi todas.

Categories: CampusParty, Tecnología Tags:

San Fermines

July 10th, 2009 View Comments

Todos los años me siento igual de frustrado a ver por la tele los heridos por los San Fermines. Nunca entenderé como se puede permitir una fiesta en la que puede morir gente tan fácilmente y sin que nadie pueda hacer nada. Es como si hubiera una fiesta en la que cualquier chalado pudiera coger su coche y dedicarse a hacer carreras (espera, Gran Premio de Jerez?) y luego pasa lo que pasa. 15 personas han perdido la vida en San Fermines desde 1922, da un muerto casi cada 6 años, eso sin contar los heridos más o menos graves que provocan estos encierros.

No digo que no haya fiesta, no digo que no haya alcohol, ni cachondeo, ni nada de eso, solo digo que se controle más la gente que participa o directamente, que se cambie esta parte de la celebración por una menos peligrosa.

Si no, que se lo digan a la familia de Daniel Jimeno Romero, que en paz descanse, al que hemos visto morir por la televisión (bastante explícito y a cámara lenta, todo hay que decirlo). Me imagino la preocupación de su madre porque su hijo fuese a este tipo de fiestas, para que acabe así…

El mundo está loco….

Categories: Personal Tags:

Google Calendar API + PHP (II), consultar eventos de otros calendarios

July 9th, 2009 View Comments

Bueno, sigo en mis trece de hacer que esto funcione, y quién sabe, hacer algo rentable de ello.

El caso es que como ya conseguí insetar los eventos en mi calendario recién creado, quería ver que los eventos que iba a meter no existían ya.

Para esto lo más cómodo es averiguar la cadena que identifica al calendario, pero ojo, porque no es ni el id del calendario ($calFeed[i]->id->text) ni la URL ($calFeed[i]->link[0]->href) sino una cadena que las contiene. Lo más rapido es quitar la URL base que no nos interesa para que nos quede el userID del calendario (que parece ser distinto para cada calendario).

$user = str_replace(Zend_Gdata_Calendar::CALENDAR_FEED_URI.'/default/', "", $calFeed[6]->id->text);

Después, hacemos una query a ESE calendario:

1
2
3
4
5
6
7
8
9
$gdataCal = new Zend_Gdata_Calendar($client);
	$query = $gdataCal->newEventQuery();
	$query->setUser($user);
	$query->setVisibility('private');
	$query->setProjection('full');
	$query->setOrderby('starttime');
	$query->setStartMin($fechaIni);
	$query->setStartMax($fechafin);
	$eventFeed = $gdataCal->getCalendarEventFeed($query);

Y luego ya, podemos reccorer sus eventos:

10
11
12
13
14
15
16
foreach ($eventFeed as $event)
	{
	 	echo "Comprobando ".$event->title->text."<br>";	    
		foreach ($event->when as $when) {
			echo $when->startTime."<br>";
		}
	}

Si no queremos hacer una búsqueda por parámetros sino sacarlos todos, es más fácil, primero sacamos el enlace al calendario:

1
$url = $calFeed[1]->link[0]->href;

Y después pedimos los eventos:

2
$events = $gdataCal->getCalendarEventFeed($url);

(Fuente: http://www.zfforums.com/zend-framework-components-13/web-web-services-22/gdata-how-get-other-calendar-than-default-one-245.html)

De verdad que no se por qué la API esta está tan mal documentada…

Google Calendar API + PHP (I)

July 5th, 2009 View Comments

Bueno, llevo un par de días pegándome con una chorrada de aplicación que se me había ocurrido hacer por entretenimiento y al final ha resultado la mar de estresante, aunque eso si, puedo decir que he aprendido algunos entresijos de las APIs de Google, en concreto de la de calendar, aunque en definitiva son todas parecedas, ya que se basan en el envío de XML a través de métodos POST previa autenticación con Google por 3 vías diferentes.

Como hay miles de tutoriales por ahí para empezar, prefiero comentar problemas que haya ido encontrando, además, como todo buen programador masoquista, paso de usar la libreria-para-tontos de PHP basada en Zend Framework que hay creada para usar, aunque al final he tenido que sucumbir, no por voluntad propia, sino por un error 411 Length Required que no hacía más que salirme por mucho que cambiase las cabeceras del POST, así que solución 1, pasarse a la librería Zend, solución 2, ver como porras lo hace la librería para copiarlo xD

Para mas inri, el error me lo estaba dando al crear un nuevo calendario enviando por POST el xml que hace falta para indicar que se desea crearlo, me pasé a la librería Zend pensando que ahí habría algún método mágico tipo createCalendar al igual que hay uno para crear eventos. Craso error amigo mío, cuando veo que ni por asomo hay una función para crear calendarios. Menos mal que rebuscando por ahí, un alma caritativa da una solución que ya se me había ocurrido y no sabía hacer, que es, nuevamente, enviar por POST el xml a pelo (pero esta vez con la libreria Zend) y voilá! funcionó :D

Para crear un calendario nuevo, se debe escribir el XML correspondiente, se puede usar una plantilla como la siguiente:
$xmlEntry = "<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' xmlns:gCal='http://schemas.google.com/gCal/2005'> <title type='text'>[TITLE]</title> <summary type='text'>[SUMMARY]</summary> <gCal:timezone value='Spain/Madrid'></gCal:timezone> <gCal:hidden value='false'></gCal:hidden> <gCal:color value='[COLOR]'></gCal:color> <gd:where rel='' label='' valueString='Madrid'></gd:where> </entry>";

De ahí solo hay que rellenar 3 cosas, [TITLE] que es el nombre del calendario, [SUMMARY] que es el resumen (y no es importante) y [COLOR] que define el color de la etiqueta del calendario y no puede ser cualquier color sino uno de estos:
'#A32929'
'#B1365F',
'#7A367A',
'#5229A3',
'#29527A',
'#2952A3',
'#1B887A',
'#28754E',
'#0D7813',
'#528800',
'#88880E',
'#AB8B00',
'#BE6D00',
'#B1440E',
'#865A5A',
'#705770',
'#4E5D6C',
'#5A6986',
'#4A716C',
'#6E6E41',
'#8D6F47',

(que no se cual es cual…)

Total, que una vez sustituidos los campos de la plantilla con nuestros datos del calendario, pues hay que autenticarse si no lo estamos ya, y enviar el POST así:

function crearCalendario($nombre, $resumen, $client)
{
	$gdataCal = new Zend_Gdata_Calendar($client);
	$uri = 'http://www.google.com/calendar/feeds/default/owncalendars/full';	
	$xmlEntry = str_replace('[TITLE]', $nombre, $xmlEntry);
	$xmlEntry = str_replace('[SUMMARY]',	$resumen, $xmlEntry);
	$gdataCal->post($xmlEntry, $uri);
}

También se puede guardar el xml en un archivo plantilla, por ejemplo createcal.xml y cargarlo antes de sustituir:
$xml = file_get_contents('createcal.xml');

Después de ejecutar esto vamos a Google Calendar (o listamos de nuevo los calendarios) y vemos que el calendario que le hemos dicho se ha creado correctamente.

Por cierto, para los que usan WAMP como servidor local de prueba, para usar las librerias Zend hay que ir al php.ini pero no el de la carpeta PHP sino al de Apache (C:\wamp\bin\apache\Apache2.2.11\bin\php.ini) y buscar la línea que empieza por ;include_path, quitarle el ; del principio y añadir al final la ruta del disco duro hasta la carpeta library del directorio donde hemos descargado el Zend (línea 528: include_path = “.;c:\php\includes;C:\wamp\apps\ZendGdata-1.8.4\library”)