37 plugins para jQuery

Una interesante lista de plugins para usar en jQuery, organizado por temas:

37 More Shocking jQuery Plugins

Vía / aNieto2k

Letras capitales mediante CSS

Es curioso como el uso del pseudo-elemento :first-letter no es muy usado en la web, mientras que en papel si se suele usar con frecuencia. En este caso se trata de crear letras capitales mediante este pseudo-elemento. Para ello habrá que usar un fondo común para todas y luego modificar la letra inicial para que encaje en el marco.

firstletter.png

p:first-letter {
display:block;
float:left;
border:1px solid black;
padding:5px;
margin:4px 5px;
background:url(firstletter1.png);
font-size:73px;
}

Nice Drop caps with CSS

Vía / Posh CSS

Mejoras de rendimiento en PHP 5.3

Parece que la nueva versión de PHP (5.3) va a mejorar el rendimiento considerablemente en muchas de nuestras aplicaciones. En algunos casos hasta en un 30%:

  • Drupal un 20% más rápido
  • Qdig un 2% más rápido
  • typo3 un 30% más rápido
  • wordpress un 15% más rápido
  • xoops un 10% más rápido

PHP 5.3: Up to 30% performance win

Evitar boots molestos mediante htaccess

La gente de AskApache nos ofrece un ejemplo de htaccess que nos permitirá evitar que nos lean boots molestos. La lista llega a más de 400 robots, lo cual puede suponer un enorme ahorro en ancho de banda y recursos.

ErrorDocument 403 /403.html
RewriteEngine On
RewriteBase /
# IF THE UA STARTS WITH THESE
RewriteCond %{HTTP_USER_AGENT} ^(aesop_com_spiderman|alexibot|backweb|bandit|batchftp|bigfoot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(black.?hole|blackwidow|blowfish|botalot|buddy|builtbottough|bullseye) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(cheesebot|cherrypicker|chinaclaw|collector|copier|copyrightcheck) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(cosmos|crescent|curl|custo|da|diibot|disco|dittospyder|dragonfly) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(drip|easydl|ebingbong|ecatch|eirgrabber|emailcollector|emailsiphon) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(emailwolf|erocrawler|exabot|eyenetie|filehound|flashget|flunky) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(frontpage|getright|getweb|go.?zilla|go-ahead-got-it|gotit|grabnet) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(grafula|harvest|hloader|hmview|httplib|httrack|humanlinks|ilsebot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(infonavirobot|infotekies|intelliseek|interget|iria|jennybot|jetcar) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(joc|justview|jyxobot|kenjin|keyword|larbin|leechftp|lexibot|lftp|libweb) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(likse|linkscan|linkwalker|lnspiderguy|lwp|magnet|mag-net|markwatch) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(mata.?hari|memo|microsoft.?url|midown.?tool|miixpc|mirror|missigua) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(mister.?pix|moget|mozilla.?newt|nameprotect|navroad|backdoorbot|nearsite) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(net.?vampire|netants|netcraft|netmechanic|netspider|nextgensearchbot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(attach|nicerspro|nimblecrawler|npbot|octopus|offline.?explorer) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(offline.?navigator|openfind|outfoxbot|pagegrabber|papa|pavuk) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(pcbrowser|php.?version.?tracker|pockey|propowerbot|prowebwalker) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(psbot|pump|queryn|recorder|realdownload|reaper|reget|true_robot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(repomonkey|rma|internetseer|sitesnagger|siphon|slysearch|smartdownload) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(snake|snapbot|snoopy|sogou|spacebison|spankbot|spanner|sqworm|superbot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(superhttp|surfbot|asterias|suzuran|szukacz|takeout|teleport) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(telesoft|the.?intraformant|thenomad|tighttwatbot|titan|urldispatcher) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(turingos|turnitinbot|urly.?warning|vacuum|vci|voideye|whacker) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(wget|widow|wisenutbot|wwwoffle|xaldon|xenu|zeus|zyborg|anonymouse) [NC,OR]
# STARTS WITH WEB
RewriteCond %{HTTP_USER_AGENT} ^web(zip|emaile|enhancer|fetch|go.?is|auto|bandit|clip|copier|master|reaper|sauger|site.?quester|whack) [NC,OR]
# ANYWHERE IN UA -- GREEDY REGEX
RewriteCond %{HTTP_USER_AGENT} ^.*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures).*$ [NC]
# ISSUE 403 / SERVE ERRORDOCUMENT
RewriteRule . - [F,L]

También nos ofrecen una alternativa con SetEnvIfNoCase

Blocking Bad Bots and Scrapers with .htaccess

Crear pestañas desde PHP

Uno de los aspectos más complicados para aquellos que empiezan dentro del diseño web es la realización de pestañas (tabs). Si necesitas una ayuda para generarlos, puede venirte bien esta clase PHP que con unas simples líneas de código podrás obtener unas pestañas con un resultado más que decente.

Tan solo habrá que ejecutar el siguiente código y se incluirán en tu HTML las etiquetas necesarias para mostrar los tabs, los cuales pueden ser activos, seleccionados y desactivados.

<

require_once('Static_Tabstrip.php');
$tabs = array(
array('id' => 'tab_1', 'name' => 'First tab', 'active' => empty($_GET['tab']), 'link' => 'example.php', 'mouseover' => 'Visit Google!'),
array('id' => 'tab_2', 'name' => 'Second', 'active' => !empty($_GET['tab']) && $_GET['tab'] === '2', 'link' => 'example.php?tab=2', 'mouseover' => 'Or not...'),
array('id' => 'tab_3', 'name' => 'Third (disabled)', 'active' => false)
);
PrintTabStrip($tabs);

Static Tabstrip

TwittNot: qué no haces en Twitter

TwittNot es una aplicación basada en Twitter que han realizado los amigos de Maestros del Web y que quiere mostrar que no está haciendo la gente. Para ello buscará mediante el API de Twitter los mensajes que escriba la gente en la que aparezcan la palabra #not (y #no para español).
twitternot.png
Ante todo se trata de un experimento con el API de Twitter, del cual podemos aprender mucho, ya que nos ofrecen todo lo que han aprendido y lo que se puede obtener del API.
TwittNot

CSS Frame Generator: obtener la estructura CSS

Buena herramienta que nos devuelve la estructura CSS básica que deberíamos usar para darle estilos a un HTML. Aunque no todos los estilos van a sernos necesarios, si es útil para obtener la estructura inicial y así poder trabajar con algo inicialmente.

Indicando un HTML obtendremos un CSS (vacío) como el siguiente:

#root {  }
#content {  }
#top {  }
#logo {  }
#logo a {  }
#top p.version {  }
#top div.balloon {  }
#top div.balloon h2 {  }
#top div.balloon p {  }
#top div.balloon p strong {  }
#top div.balloon p em {  }
#more.box {  }
#more.box h2 {  }
#more.box p {  }
#more.box ol.properties {  }

CSS Frame Generator

Vía / CSS Globe

Clase para generar claves en PHP

Generar claves aleatoriamente puede ser necesario cuando en nuestra aplicación web tengamos que dar claves a los nuevos usuarios (por ejemplo como hace WordPress cuando instalamos).

Por ello esta clase nos puede venir muy bien, ya que de forma sencilla podemos crear claves de una longitud dada y pudiendo indicar si es en mayúsculas, minúsculas o mezcladas.

CreatePwd

URL routing con PHP

Un excelente tutorial que nos enseña como crear URL amigables y tratarlas para crear nuestras aplicaciones. Son URLs del tipo http://servidor/funcion/param1/param2, y gracias a ellas podemos hacer URLs más entendibles de forma sencilla. CodeIgniter las trata de la misma manera salvo que en vez de /funcion se trata de /clase/metodo, pero al final el tratamiento depende del que nosotros queramos darle.

Resumiendo un poco su funcionamiento, todas las llamadas deben pasar por un mismo script (normalmente index.php), mediante el .htaccess se redirecciona todo lo que llega al servidor al archivo index:

Options +FollowSymLinks
IndexIgnore */*
# Turn on the RewriteEngine
RewriteEngine On
#  Rules
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

Una vez todas las llamadas nos llegan al mismo script debemos obtener la función y los parámetro:

$requestURI = explode('/', $_SERVER['REQUEST_URI']);

El resto es sencillo y nos ofrece muchas posibilidades.

Url Routing with PHP, 2