Detectar código duplicado en PHP con PHPCPD

PHPCPD es una herramienta que nos permite detectar código duplicado en nuestros scripts PHP. Una utilidad muy interesante sobre todo para aquellos proyectos grandes en los que hay muchos ficheros y unos cuantos metiendo mano al código, ya que la falta de documentación o de comunicación hace que se repitan codigos en diferentes partes del proyecto, o también debido a malas prácticas a la hora de desarrollar. El código repetido hace que sea imposible de mantener y cueste horrores modificar una funcionalidad ya que hay que buscar en diversos lugares.
PHPCPD
Vía / PHPDeveloper.org

Geolocalización por IP mediante Javascript y JSON

Sencillo script que nos devuelve un JSON con la geolocalización según la IP, usando los datos sacados de iplocationtools.com:

function getLocation(){
script = document.createElement('script')
script.src = 'http://www.nitinh.com/ip_query.php?callback=initialize'
document.body.appendChild(script)
}
function initialize(obj){
document.getElementById('spanLocation').innerHTML = obj['City'] + ', ' + obj['RegionName'] + ', ' + obj['CountryName'];
}

IP Address Geolocation Javascript API : JSON

Vía / korayem

Enlaces rápidos (07-04-2009)

Hace mucho que no publico enlaces rápidos, alguno puede estar un poco antiguo:

Crear un plugin para WordPress con su propia tabla

Interesante artículo en el que nos explican cómo crear un plugin de wordpress usando su propia tabla, algo que no suele necesitarse porque para almacenar datos propios se usan las “options”, pero en algún momento podemos necesitarlo.

Nos explica paso a paso qué hay que hacer:

  • Declarar la función y las variables globales que se necesitan
  • Darle un nombre a nuestra tabla y usar el prefijo de WP
  • Comprobar que la tabla no existe y si no, crearla
  • Añadir la funcionalidad a WordPress
  • Añadir datos a la nueva tabla

Create a Plugin With Its Own Custom Database Table

5 consejos para optimizar sentencias en MySQL

Interesantes consejos a tener en cuenta cuando realizamos nuestras aplicaciones usando MySQL:

  • Optimización de tipos: intenta evitar el uso de NULLs ya que requieren más operaciones internas en MySQL. Usa el tamaño correcto para las variables, por ejemplo, si vas a usar un número pequeño no uses INT.
  • Cuidado con la codificación de caracteres: inserta los datos siempre en la misma codificación, si tienes orígenes con diferentes codificaciones modificalo antes de insertar.
  • Optimización de COUNT: COUNT(*) sin un WHERE no necesita acceder a la tabla para obtener los resultados, al igual sin en vez de asterisco usamos un campo de la tabla que no tenga valores NULL. En el caso de que haya WHERE, poco se puede hacer para optimizar la consulta salvo usar índices correctamente.
  • Optimización de subqueries: MySQL no optimiza muy bien las subqueries por lo que es preferibles pasarlas a una JOIN. Incluso realizar dividir en dos queries independientes puede ser una buena alternativa.
  • Optimización de UNION: UNION devuelve la unión de los datos de dos tablas que no se hayan en la otra, por lo que realizan un UNIQUE y una ordenación. Usa UNION ALL si estás seguro de que las distintas consultas no tienen datos repetidos (o no te importa que esté repetidos).

Five Query Optimizations in MySQL

Resalta la sintaxis del código mediante Ajax

Buen script que nos permite resaltar el código que mostramos dentro de un <pre$gt;<code lang=”[lenguaje]“$gt;…</code$gt;</pre$gt; en nuestras páginas web o blogs.
El script realiza una llamada Ajax con los trozos de código y su lenguaje y recibe el html de cada trozo de código ya formateado. Utiliza GeSHi para resaltar el código, pero puede utilizar otras.
Ajax Syntax Highlighter
Vía / philsci

XSS Rays: javascript que detecta vectores XSS

XSS Rays es un script que permite detectar vectores XSS en cualquier página web. Debemos instalar en un servidor web (puede ser en local) y añadir a nuestros marcadores o favoritos para poder ejecutarlo sobre cualquier página que visitemos.
Funciona para IE y FF, aunque puede funcionar en otros navegadores, además se pueden personalizar los vectores para cada navegador.
La ejecución es sencilla, accedes al marcador, empiezas el test y te va mostrando las incidencias que encuentra (si es que las hay).
XSS Rays
Vía / lajevardi

JsLoad: carga de librerías remota

JsLoad permite cargar librerías Javascript desde los servidores de Google, no tienes que preocuparte por las dependencias de otras librerías, ya que JsLoad se encarga de cargar las dependencias automáticamente.
jsload.png
Además se pueden cargar diferentes versiones de una misma librería, no necesariamente la última versión. Entre las librerías que se pueden cargar nos encontramos: ExplorerCanvas, Facebox, JavaScript-XPath, jQuery, JSDeferred, Lightbox, MooCanvas, MooTools, Processing.js, Prototype, script.aculo.us, Taffy DB y textMonster.
JsLoad
Vía / meme

qTip: tooltips con jQuery

qTip es un plugin jQuery que nos permite crear y personalizar tooltips en nuestra página web. Se trata de un plugin muy completo que tiene las siguientes características:

qtip.png

  • Compatible con IE6+, Firefox 2+, Opera 9+, Safari 3+, Chrome 1+, Konqueror 3.5+
  • Esquinas redondeadas sin necesidad de imágenes
  • Posibilidad de indicar la esquina donde se quiere situar el tip (elemento del bocadillo que enlaza con el elemento)
  • Posibilidad de meterle efectos y Ajax
  • Configurable

qTip

Vía / crishnakh

boingPic: experimento con imágenes y jQuery

boingPic es un experimento realizado con jQuery que divide una imagen en 100 cuadritos y hace que “huyan” del ratón cuando éste se mueve.
boingpic.png
El script no tiene mucha utilidad en si, pero sí que puede ser interesante para tomar ideas para otros desarrollos, sobre todo a la hora de dividir la imágen y controlar su movimiento.
boingPic
Vía / couch