Bosque virtual

Agregar a favoritos

2 Comentarios

Posteado hace 21 días en:

Bosque Virtual es una iniciativa de Unión Fenosa para contribuir con el ahorro de Energía. En un par de minutejos haces una encuesta y te envían consejos para ahorrar consumo de energía. Además plantan un árbol virtual en Second Life. Esto ultimo lo vi hace tiempo en el hormiguero, pero con arboles reales.


display:none no intrusivo

Agregar a favoritos

10 Comentarios

Posteado hace 27 días en:

Hay varias formas de ocultar información, cuando la cantidad es grande se suelen utilizar métodos como los acordeones o las pestañas, que ocultan las capas que no se quieren ver.

Normalmente utilizamos el evento onload para ocultar las capas, dejando un efecto visual de ahora te veo y ahora no te veo.

Para evitar este problema hay varias soluciones, aquí os dejo unas cuantas.

Escribir con document.write un style para ocultar una clase.

   document.writeln('<style type="text/css">.hide { display:none } </style>');

Añadir detrás de las capas el javascript necesario para ocultarlas

   <script type="text/javascript" charset="utf-8">
   $$('.hide').setStyle('display','none');
   </script>

Utilizar el evento domready de algunos frameworks que se dispara una vez cargado el DOM y no la página entera.

    window.addEvent('domready', function() {
$$('.hide').setStyle('display','none');
    });

Hay que decir que si el javascript no esta activado las capas no se ocultaran y estas podrán ser vistas sin ningún problema.


Botones encriptados de PayPal con PHP

Agregar a favoritos

3 Comentarios

Posteado hace 30 días en:

Estos días he estado ayudando aun amigo para hacer pagos con PayPal, gracias a este tutorial de Rails hemos podido crear una versión en PHP.

Para generar botones encriptados lo primero que tienes que hacer es crear unos certificados, una vez creados tendrás los datos necesarios para cumplimentar las opciones de la clase.

  $config = array(
        'cert_id' => 'xxx',
        'business' => 'seller_xx@xxx.es',
        'openssl' => '/usr/bin/openssl',
        'my_cert' => 'certificates/my-pubcert.pem',
        'my_key' => 'certificates/my-prvkey.pem',
        'paypal_cert' => 'certificates/paypal_cert.pem'
    );
    //iniciamos la clase
$paypal = new PayPal($config);

Luego hay que pasarles las variables necesarias para encriptar el botón, en la documentación de PayPal encuentras todas las variables.

$form = array(
    'cmd' => '_xclick',
     'item_name' => 't-shirt 13',
     'item_number' => '12',
    'amount' => '4500.00'
);

$encrypted = $paypal->encrypt($form);

Una vez encriptado solo tienes que rellenar los datos del formulario, el action y el campo hidden.

    <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick"/>
<input type="hidden" name="encrypted" value="<?PHP echo $encrypted; ?>"/>
<input type="submit" value="Buy"/>
</form>

Nos queda la parte del IPN (Instant Payment Notification) para saber si la transacción se ha ejecutado con éxito. Es curioso algunas tiendas envían el botón sin encriptar pero si hacen el IPN.

En la clase incluyo el ejemplo para que lo tengáis todo a mano, recordad que en el tutorial escrito en rails tenéis los pasos previos para crear los certificados.

Descargar class.paypal.php.


Ordenar por contexto

Hace unos días buscaba alguna aplicación web para tener un cajón desastre, una especie de tumblr para ir recopilando cosas que encuentro. Todo comienza por que andaba leyendo unos artículos de GTD para organizarme un poco mejor y pensando me di cuenta que algunas veces me cuesta horrores encontrar las cosas que guardo, sobre todo enlaces y que no estaría mal seguir un patrón para ordenarlos.

No se si os ha pasado alguna vez que habéis guardado un enlace pero luego al intentar buscarlo no os acordabais ni del titulo ni de los tags, solo os acordabais que iba de tal cosa o que contenía tal cosa. Desde mi punto de vista creo que podríamos organizar las cosas partiendo de 3 fases.

Una fase de 3 niveles jerárquicos de organización (categorías y subcategorías), otra impuesta por el usuario (tags) y una ultima obtenida por el archivo.

Partiendo como lo hace tumblr la primera seria organizarlo por el tipo: Texto, Enlace, Archivo, Imagen, Audio y Video, luego iríamos profundizando según su contenido o categoría ( Texto -> Snippet -> php). La ultima fase obteniendo información del archivo, si es un audio el ID3, si es un enlace el titulo de la página.

Un ejemplo incompleto de categorías podría ser este:

  • texto
    • Articulo
      • html
      • doc
      • pdf
    • Cita
    • Codigo
    • Password
    • ...
  • enlace
  • archivo
  • imagen
  • audio
    • Canción
    • PodCast
  • video

El concepto de una aplicación web es sencillo, primero guardar el enlace y luego etiquetarlo o dejarlo en el inbox.

Pongamos un ejemplo: Encuentro un video en youtube que es el ultimo trailer de una película, voy a mi aplicación y guardo el enlace, en el siguiente paso la aplicación me detecta que es un vídeo y me dice que lo etiquete, me muestra un lista para decir si es un película, un trailer o un videoclip, etc. Una vez elegido me aparece otra indicando la categoría (ciencia ficción, terror, humor, etc). Luego encuentras un campo para escribir tus tags personalizados, por si quieres agrupar o buscar fácilmente y por ultimo encuentras varios campos donde la aplicación te ha sacado el titulo, la descripción y la puntuación del video.

Con este sistema pienso que se podría recuperar las cosas fácilmente, ya que se guardaría por contexto. En el ejemplo si no me acordara del titulo por lo menos podría saber que lo guarde como un trailer de ciencia ficción.


Window Growl con Mootools 1.2 Beta 2

Gracias a Paul Streise, alguien que no tiene web, ha dedicado parte de su tiempo a portar el código de Window.Growl a Mootools 1.2 Beta 2.

Sin duda Window.Growl y Packito son las dos joyas de esta casa y ambas las tengo un poco descuidadas, aun así tengo planes para actualizarlas pero gracias a Paul ya me he ahorrado el 50%.

Por mis refers he encontrado una versión en Prototype, esto quiere decir que hay versiones adaptadas para Mootools, jQuery y Prototype, nada mal.

Tengo que decir que tambien un usuario ha añadido mejoras a class.image y que pronto intentare postearlo.