Archive of articles classified as' "proyectos"

Back home

Mosaicos v0.1b

10/01/2005

Se relanza el mosaico con fotos de Flickr, anunciado el mes pasado, ahora se pueden indicar el numero de columnas, el número de fotos por página, una forma un poco más amigable y mucho mas entendible :D.

A ver qué les parece, espero que a alguien le sirva para algo.

No Comments

Mosaicos con fotos de Flickr

27/12/2004

Hace algunos dias, leyendo el blog de flickr (del cual ya también soy fan), me enteré de los servicios públicos que ofrecen. La verdad están muy interesantes, pero no había tenido tiempo hasta hoy, que les dediqué un rato y voilà, empecé ;).

El chiste, es que quiero hacer un objeto Flickr, el cual implemente todos los servicios que ofrecen. Debido a que (parte por simplicidad, parte por problemas, parte por hueva) estoy usando el formato rest(request en la url, response en un xml), este objeto será compatible con PHP 3.0.8+, esto debido a que uso la función xml_parse_into_struct (algo complicada, por cierto).

Como primer implementación usando Flickr, hice un script llamado mosaico, el cual, basándose en un username, busca y trae sus fotos y con estas hace un mosaico, con resultados bastante simpáticos y coloridos. Sin más rollo, para muestra, un(os) botón(es) :D:

Estas son los mosaicos formados con fotos de algunos usuarios de flickr:

  • mis fotos
  • fotos de Rafael Peñaloza
  • fotos de Carlos Mara
  • fotos de Jorge C.
  • fotos de una tal fatima, el resultado es muy colorido, con buenas fotos
  • fotos de san francisco, algunas realmente buenas

    En todos los casos se puede cambiar el número de imágenes agregando la variable num=X en el query, por ejemplo:

    El siguiente paso en el objeto Flickr es acabar :D.

    El siguiente paso en mosaico es poder hacer la búsqueda en grupos, sets, etc.

  • 2 Comments

    Flash newbie

    15/12/2004

    Pues ahora es el turno de flash.

    Varias veces había intentado usarlo, pero siempre con no-muy-buenos resultados. El mayor problema siempre fue que el modelo de desarrollo en flash, rompia con ciertos paradigmas mios, lo veia exclusivamente como un ide, en vez de como una aplicación per se.

    Dejando a un lado estas mamadas, ya que era la única herramienta (que conozco) que solucionaba mis necesidades, me decidí a aventurarme de nuevo, consiguiento mejores resultados (y opiniones). Tengo que agradecer la ayuda de mara, ya que sin esta, hubiera mandado todo esto al diablo (otra vez).



    si no se ve la película, hacer click aqui para ver en el post original

    Además como comentó el condor en el post acerca de imageshack.us, este servicio también hospeda swf’s (archivos de flash), de hecho esta peliculilla está hospedada alli.

    No Comments

    Integrando PHP con JavaScript

    24/10/2004

    Recientemente terminé una aplicación sin mayor chiste que lograr una integración decente entre PHP y JavaScript.

    La aplicación en si es una lista de bookmarks, en la cual cada entrada puede ser calificada por los usuarios una vez por sesión. Hay dos formas de hacerlo, la primera es usando el xmlHttpRequest el cual es un objeto para enviar, manejar y recibir solicitudes via http, en particular (mas no exclusivamente) solicitar xml via http (como su nombre bien lo dice :)). En esta liga Pablo Fischer habla un poco de el.

    La segunda forma es la que uso, de hecho un poco menos profesional, es usando el atributo target del objeto form, un iframe y una medida dosis de javascript.

    Para empezar hacemos el iframe cuyo atributo name sea correspondiente con el target de la forma. Seria bueno hacer el iframe invisible usando css: style='visibility:hidden;width:0px;height:0px'. Si usaba display:none, el safari no lo veia por lo que abria una nueva ventana con el nombre que ponia en el target. De esta forma, el handler de la forma sera abierto dentro del iframe sin cambiar (en principio) la vista de la aplicación. Desde adentro del iframe, usando javascript, nos podemos referir al frame principal (contenedor del iframe) como document.parent.anyThing() y asi actualizo la información desplegada en el frame principal.

    En cuanto pula un poco mas el codigo, lo publico, mientras aqui pueden ver la pantalla principal, y aqui parte del javascript que se ejecuta dentro del iframe.

    Una nota muy importante es darse cuenta que esto depende en gran medida del browser, lo probe en safari y en firefox, no lo he probado en Internet Explorer.

    1 Comment

    codigo del webservice Picture

    30/07/2004

    Pues el codigo del webservice Picture esta listo.

  • Codigo del server
  • Codigo del cliente

    El codigo esta muy casado con mi sistema de galerias, pero creo que es muy facilmente modificable para las necesidades de cada uno.

    Espero comentarios.

    Estoy haciendo pruebas con la funcion rand([init,end]) de PHP pues no me gustan sus resultados cuando tiene parametro, se me hace que la voy a cambiar por algo asi como:



    $min = 4;

    $max = 12;

    $rand = (rand() % ($max - $min + 1)) + min;



    hare pruebas al respecto.

  • No Comments

    foto aleatoria::cliente

    29/07/2004


    include ("include/nusoap/nusoap.php");

    $url = "http://201.133.100.56/ws/RandomImage.php?wsdl";
    $service = @new soapclient($url,"wsdl");
    $client = @$service->getProxy();
    $a = @$client->randomPicture("d");

    No Comments

    foto aleatoria::servidor

    29/07/2004

    Este es el codigo integro del webservice Picture. Este codigo no es muy genereico, de hecho esta bastante casado al modelo de galerie. Pero para cualquier cosa, contactenme.



    require_once("nusoap/nusoap.php");
    $SETTINGS = array(
    "patern" => "s.+.jpg",
    "base_dir" => "../fotos/albums/",
    "url_start_dir" => "/fotos/albums/",
    //a partir de base_dir deberan estar todos los folders de galerias
    );

    $soap_action = "http://".$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"];

    //generamos el ws
    $s = new soap_server();
    $s->debug_flag = false;
    $s->configureWSDL("Picture","urn:b3co");
    $s->wsdl->schemaTargetNamespace = "urn:b3co";

    $s->wsdl->addComplexType(
    'PictureData',
    'complexType',
    'struct',
    'all',
    '',
    array( 'galerie_name' => array('name' => 'galerie_name', 'type' => 'xsd:string'),
    'galerie_url' => array('name' => 'galerie_url', 'type' => 'xsd:string'),
    'picture_page' => array('name' => 'picture_page', 'type' => 'xsd:string'),
    'picture_url' => array('name' => 'picture_url', 'type' => 'xsd:string'))
    );

    $s->register('randomPicture',array('nada'=>'xsd:string'),array('return'=>'PictureData'),"urn:b3co",$soap_action);


    function randomPicture($params){
    global $SETTINGS;
    $fotos = array();
    if(!isset($SETTINGS["pattern"])){
    $SETTINGS["pattern"] = "";
    }
    $d = dir($SETTINGS["base_dir"]);
    while($d1 = $d->read()){
    if($d1 != "." && $d1 != ".." && is_dir($SETTINGS["base_dir"].$d1)){
    $di = dir($SETTINGS["base_dir"].$d1);
    while($f = $di->read()){
    if(ereg($SETTINGS["patern"],$f)){
    ereg("([0-9]{1,3})",$f,$regs);
    $num = $regs[1];
    $fotos[count($fotos)] = array(
    "galerie_name" => $d1,
    "galerie_url" => "http://".$_SERVER["SERVER_NAME"].$SETTINGS["url_start_dir"].$d1,
    "picture_page" => "http://".$_SERVER["SERVER_NAME"].$SETTINGS["url_start_dir"].$d1."/page_".$num.".html",
    "picture_url" => "http://".$_SERVER["SERVER_NAME"].$SETTINGS["url_start_dir"].$d1."/".$f,
    );
    }
    }
    }
    }
    $rand = rand(0,count($fotos)-1);
    return $fotos[$rand];
    // return array(count($fotos),1,1);
    }

    $s->service($HTTP_RAW_POST_DATA);

    1 Comment

    codigo de amazon web-services

    23/07/2004

    No es el codigo del que este mas orgulloso, de hecho es urgente una pequena reingenieria, pero funciona y de hecho fue por hobbie, ademas de ser mi primer web-service.

    Usando NuSOAP.


    $GLOBAL_VARS = array("NUSOAP_PATH" => "../include/nusoap/",
    "AMAZON_TAG" => "[SOLICITAR TOKEN]",
    "AMAZON_WSDL" => "http://soap.amazon.com/schemas2/AmazonWebServices.wsdl");
    class BookInfo
    {
    function BookInfo($isbn,$debug=false){
    global $GLOBAL_VARS;
    $this->debug = $debug;

    $this->isbn = $isbn;
    $this->authors = "";
    $this->image = "";
    $this->date = "";

    $this->service = new soapclient($GLOBAL_VARS["AMAZON_WSDL"],true);
    $this->proxy = $this->service->getproxy() or die("no proxy");

    if($this->debug)
    echo "servicios iniciados";

    $this->getBookInfo();

    }

    function getBookInfo(){
    global $GLOBAL_VARS;
    $params = array(
    "asin" => $this->isbn,
    "tag" => "webservices-20",
    "devtag" => $GLOBAL_VARS["AMAZON_TAG"],
    "type" => "heavy",
    "page" => 1,
    );
    if($this->debug)
    echo "servicio solicitado";
    $this->result = $this->_loadService('AsinSearchRequest',$params);
    if($this->debug)
    echo "paquete recivido";

    }

    function _loadService($serv, $params){
    return $this->proxy->$serv($params);
    }
    }

    No Comments

    codigo de smilies

    21/07/2004


    $emoticons = array(
    "/:-)/" => "smile.gif",
    "/:)/" => "smile.gif",
    "/8-)/" => "shades.gif",
    "/(H)/" => "shades.gif",
    "/:-o/" => "surprise.gif",
    "/:-O/" => "surprise.gif",
    "/:-|/" => "amused.gif",
    "/:@/" => "angry.gif",
    "/(au)/" => "car.gif",
    "/:-S/" => "confused.gif",
    "/:-s/" => "confused.gif",
    "/:s/" => "confused.gif",
    "/:S/" => "confused.gif",
    "/:(/" => "sad.gif",
    "/:-(/" => "sad.gif",
    "/:d/" => "teeth.gif",
    "/:D/" => "teeth.gif",
    "/:-p/" => "tongue.gif",
    "/:-P/" => "tongue.gif",
    "/;-)/" => "winck.gif",
    "/;)/" => "winck.gif",
    );

    foreach(array_keys($emoticons) as $key){
    $emoticons[$key] = "img src='".$_emoticons_folder.$emoticons[$key]."' width=17 height=17";
    }

    function format_text($text){
    global $emoticons;
    return preg_replace(array_keys($emoticons),array_values($emoticons),$text);
    }

    No Comments

    web services de amazon y smilies

    21/07/2004

    El dia de ayer estuve jugando un rato con los webservices de amazon, y quedo bastante chido para ser solo una prueba y ademas mi primer cliente de un web service. Para esto tome ideas tanto de la pagina de ion de aqui, aqui y de aqui, asi como de algun gadget de jaws. Lo que este web service hace es: dado un ISBN [International Standard Book Number] llamado ASIN[Amazon Sandard Item Number] en el sistema de amazon, te regresa toda la informacion disponible de este libro en amazon, como: nombre, edicion, autor, reviews, salesrank, liga a tres tamanios de la imagen del libro…

    Aqui esta para el que guste: BookInfo

    Algunos isbn’s:

    • 0309085497
    • 0898713641
    • 0060935588

    Hay un sdk de los web-services de amazon esta disponible aqui, los ejemplos son sumamente claros y vienen en varios lenguajes: php, java, vb ademas de los xml y xsl de request-response del servicio.

    Parece que esta chido, de hecho lo esta, pronto bookShelf tendra la opcion de agregar por ISBN exclusivamente, ademas de poder hacerlo por lote.:D

    Ahhhh, tambien este blog ya despliega smilies:D, mejorare la calidad y el origen:S de las imagenes en cuanto tenga tiempo.

    Las imagenes disponibles son las siguientes:


    : -) :-)

    : ) :)

    8 -) 8-)

    ( H) (H)

    : -o :-o

    : -O :-O

    : -| :-|

    : @ :@

    ( au) (au)

    : -S :-S

    : -s :-s

    : s :s

    : S :S

    : ( :(

    : -( :-(

    : d :d

    : D :D

    : -p :-p

    : -P :-P

    ; -) ;-)

    ; ) ;)

    He aqui el codigo del las smileys :D

    1 Comment
    123