Cufón aspira a convertirese en una digna alternativa a sIFR, que sigue siendo bastente difícil de configurar y utilizar. Cufón no requiere plugins -usa las características soportadas por el ordenador cliente-, es compatble con la mayoría de navegadores, es fácil de usar y es rápido en su ejecución.
XUI, framework javascript para dispositivos móviles
Al parecer los intentos de incluir los ya conocidos frameworks de javascript como jQuery, Prototype, Dojo, Mootools,… en aplicaciones web para móviles, ha dejado una puerta para crear uno especialmente para ello, como el WebKit Mobile de Dojo, XUI quien tiene funcionalidades solo para navegadores de un dispositivo móvil.
Se ve que aun esta fresco ya que esta pensado para trabajar con navegadores basados en WebKit (iPhone), Opera y Fennec (Firefox Mobile), también tienen previsto sacar versiones compatible con IE Mobile y Blackberry. Esperemos que el desarrollo de herramientas para aplicaciones web móviles se impulse y tome un rol importante.
El código ocupa tan solo 6kb y pueden ver un par de ejemplos a continuación.
x$('button').on( 'click', function(){ alert('boton pulsado!') });
x$('#box5').css({ backgroundColor:'blue', width:'100px', border:'2px solid red' });
x$('#box').tween([{ left:100px, backgroundColor:'green', duration:.2 }, { right:100px }]);
Dominios genéricos usando redirección 301 en .htaccess
Muchos desarrolladores tienen problemas con los dominios cuando usan algún analizador web como Analytics, por que no es lo mismo usar http://www.misitio.cl que http://misitio.cl o simplemente para que el dominio se vea bien siempre.
La solución para esto, generar un método de redireccionamiento donde el dominio sin-www muestre el www o viceversa, la idea es generar un único archivo .htaccess el cual se pueda usar en varias aplicaciones o sitios web.
sin-www a www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
www a sin-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
También como extra, y sirve mucho para seguir el comportamiento de algunas direcciones, es eliminar la ultima barra de la url, de esta forma no aparecerá dos veces con distintas visitas.
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
Leer un fichero XML con jQuery
Hace un tiempo estuve buscando una solución para leer un archivo xml, la idea es leer sus nodos y los atributos con jQuery, por ahí encontre una solución muy sencilla para este proposito.
Existe un problema al tratar de ejecutarlo en IE, tambien encontre una solución para eso.
Primero que nada generaremos el fichero xml.
mi.xml
<?xml version=’1.0′ encoding=’UTF-8′?>
<items>
<item id=”1″ nombre=”Ricardo Gatica”>
<books since=”2005″>PHP Book</books>
<books since=”2005″>MySQL Book</books>
</item>
<item id=”2″ nombre=”Victor San Martin”>
<books since=”2006″>Javascript Book</books>
<books since=”2007″>CakePHP Book</books>
</item>
</items>
Ya tenemos nuestro archivo xml estructurado con dos personas (nosotros), cada uno tiene dos libros, bueno ahora leerlo con jQuery, la version que se utilizo fue la 1.2.6.
$.ajax({
type: 'GET',
url: 'mi.xml',
cache: false,
dataType: ($.browser.msie) ? 'text' : 'xml', // Reconocemos el browser.
success: function(data){
var xml;
if(typeof data == 'string'){
xml = new
ActiveXObject('Microsoft.XMLDOM');
xml.async = false;
xml.loadXML(data);
} else {
xml = data;
}
$(xml).find('item').each(function(){
var id = $(this).attr('id');
var nombre = $(this).attr('nombre');
$(this).find('books').each(function(){
var since = $(this).attr('since');
var libro = $(this).text();
});
});
}
});
Ya con esto tenemos para jugar con las variables declaradas (id, nombre, since, libro).
Leer un fichero XML con CakePHP
Bueno el código es simple, por lo que no voy hacer muchos comentarios.
mi_controller.php
<?
class MiController extends AppController {
var $name = 'Mi';
function index(){
App::import('Xml');
$parsed =& new Xml('http://www.misitio.cl/mi.xml');
$parsed = Set::reverse($parsed);
pr($parsed);
}
}
?>
De esta forma podemos leer cualquier xml, desde una url o directamente desde el servidor, colocando el path completo del archivo.