|

Redirigir iPhone, Blackberry y Palm desde .htaccess

Sencillo truco que nos puede ayudar a redireccionar nuestra web a la versión móvil cuando nos visite un usuario desde un iPhone, una Blackberry o una Palm

RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*BlackBerry.*$
RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*Palm.*$
RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]

Redirect iPhone, Blackberry, & Palm Requests With .htaccess

Vía / @jlantunez

Enlaces rápidos (09-04-2010)

Siguendo con el tema NOSQL, entre otras cosas…

Llamar objetos como si fueran funciones en PHP

En PHP 5.3 existe el método __invoke que permite llamar a un objeto como si se tratara de una función, y como lo mejor para entenderlo es un ejemplo, pues aquí va:


class Hola {
    public function __invoke($quien) {
        return "Hola, $quien";
    }
}
$saluda = new Hola;
echo $saluda('amigo'); // "Hola, amigo"

Una función que desconocía y que puede ser muy útil, además de ser un 25% más rápida que hacer la llamada a un método del objeto que haga lo mismo.

Vía / Phly, boy, phly

Bitly-PHP librería para trabajar con la API de Bit.ly

Bitly-PHP es una librería PHP que permite trabajar con la API de Bit.ly, pudiendo acortar URLs, extenderlas, obtener información como el thumbnail o las estadísticas.

$bitly = new Bitly(",");
$bitly->stats('http://bit.ly/b6R4Uf');
echo $bitly->getData()->clicks;

Bitly-PHP

Detectar características HTML5 mediante Javascript

Aunque el HTML5 no está disponible en todos los navegadores, no es mala idea ir incluyendo en nuestras webs aplicaciones que hagan uso de HTML5, e ir dándole un poco de vidilla al asunto y no estar pendientes de Internet Explorer. Por ello, este script nos puede venir muy bien:

function detectBrowserCapabilities(){
  var res = new Array();
  res["userAgent"] = navigator.userAgent;    
  var hasWebWorkers = !!window.Worker;
  res["workersFlag"] = "" + hasWebWorkers;
  var hasGeolocation = !!navigator.geolocation;
  res["geoFlag"] = "" + hasGeolocation;
  if (hasGeolocation) {
    document.styleSheets[0].cssRules[1].style.display = "block";
    navigator.geolocation.getCurrentPosition(function(location) {
      res["geoLat"] = location.coords.latitude;
      res["geoLong"] = location.coords.longitude;
    });
  }
  var hasDb = !!window.openDatabase;
  res["dbFlag"] = "" + hasDb;
  var videoElement = document.createElement("video");
  var hasVideo = !!videoElement["canPlayType"];
  var ogg = false;
  var h264 = false;
  if (hasVideo) {
    ogg = videoElement.canPlayType('video/ogg; codecs="theora, vorbis"') || "no";
    h264 = videoElement.canPlayType('video/mp4; 
    codecs="avc1.42E01E, mp4a.40.2"') || "no";
  }
  res["videoFlag"] = "" + hasVideo;
  if (hasVideo){
    var vStyle = document.styleSheets[0].cssRules[0].style;
    vStyle.display = "block";
  }
  res["h264Flag"] = "" + h264;
  res["oggFlag"] = "" + ogg;
  return res;
}

Build Web applications with HTML 5

Enlaces rápidos (30-03-2010)

Más sobre NoSQL y otras cosillas