AddThis Feed Button
AddThis Social Bookmark Button
IMGP1165
IMGP1166
IMGP1143
IMGP1144
IMGP1145
IMGP1146
IMGP1147
IMGP1148
IMGP1149
IMGP1150
Categories

This Month Last Year

Julio 2008
L M X J V S D
« Jun «-»  
 123456
78910111213
14151617181920
21222324252627
28293031  
links
30
Abr

Extensiones Firefox (II)

Url Params

Empezamos con la URL Params. Esta destinada a debuguear los $_POST y $_GET de cara a encontrar fallos durante la programación. Aunque también permite mostrar que datos se envían en otras webs tras pulsar un botón o acceder vía enlace. Muy útil de cara a optimizar la seguridad de la web o para simplemente ayudar en la elaboración de formularios.


IeTab

De cara al diseño de la página, esta extensión se vuelve casi imprescindible. La IETab emula en una pestaña de Firefox el motor de Internet Explorer y su hoja de estilos. Así no tendrás que andar cambiando entre exploradores para diseñar. Puedes ver la página activa directamente pulsando en el botón, o abrir un vínculo en una pestaña nueva de IETab. Más cómodo imposible ¿verdad?

Colorzilla

Capturar un color que nos haya gustado mientras navegábamos ya no será una lata. Ni capturas, ni software, ni mucho menos. Colorzilla permite usar la clásica herramienta de cuentagotas para seleccionar el color elegido. Después veremos los datos en la barra de estado, aunque tiene una opción para ahorrarnos más tiempo aun. Si ya tienes un color seleccionado y pulsas con el clic derecho en el icono de la extensión, te aparecerá un menú contextual con la opción de copiar el color al portapapeles con diferentes formatos (RGB, Hexadecimal, sin almohadilla…). Rápido y útil.

Descargar URL Params : enlace.

Descargar IETab : enlace.

Descargar Colorzilla : enlace.


25
Abr

Como crear un Random-Post

HowTo
Otro de los "servicios" que se han puesto de moda últimamente es el ¡Salta!. Este no es más que un enlace a una entrada de la web pero escogida de forma aleatoria.


Si tu CMS no tiene un plugin que sirva para ello, o quieres hacerlo por ti mismo, hay una manera no intrusiva de hacerlo. No tienes más que crear un archivo PHP que calcule el random y genere un enlace a un post aleatorio existente, y que luego redireccione la pagina actual a ese enlace.


$random = rand(1,lastPostID());
while (!postExist($random)) {
$random = rand(1,lastPostID());
}
header("Location: http://www.web.com/index.php?p=".$random);
?>

Después de esto solo quedaría explicar que significa lastPostID() y postExist(). Son dos funciones simples que utilizaremos para obtener el ultimo ID de nuestros posts de cara a saber la longitud máxima del random, y para saber si el random en cuestión existe o no. Mientras no exista seguirá recalculándose y volviendo a generar un random. Cuando una exista, lanzara el header y redireccionará la página. Aquí os dejo las funciones.


// Comprobar si un post existe
function postExist($idpost) {
if (is_numeric($idpost)) {
$resultado = mysql_query("select * from posts where idpost=".$idpost);
while ($fila=mysql_fetch_array($resultado)) {
return true;
}
}
return false;
}

// Obtener el ultimo POSTID
function lastPostID() {
$resultado = mysql_query("select max(IDPOST) as IDPOST from posts");
$fila=mysql_fetch_array($resultado);
return $fila["IDPOST"];
}

Sencillo ¿verdad? Ya no hay excusa para no estar a la última ;)


24
Abr

Como crear un RSS para tu página (y II)

RSS
Ahora solo falta saber como generaríamos este código XML desde nuestra web de manera automática. Para ello utilizaremos PHP conectado a nuestra base de datos de MySQL (Voy a ponerlo lo mas genérico posible, cada uno, incluido yo, tenemos nuestras funciones de acceso a base de datos, pero así todo el mundo podrá verlo de manera clara).

\r\n Para empezar, el archivo será un .php para que el servidor ejecute nuestro código, pero para ello necesitamos engañar al navegador cambiando el content type del archivo, para que una vez ejecutado se interprete como XML y no como XHTML o HTML.


header("Content-type: text/xml; charset=ISO-8859-1",true);
print "“;
?>

Inmediatamente después, comenzaríamos rellenando la información del channel manualmente excepto el <pubDate> que puede automatizarse. La parte interesante llega con los <item>. Haremos una consulta que nos devuelva las ultimas 25 entradas de nuestra página (esta os toca hacerla a vosotros, ya que cada modelo de datos es diferente, y no funcionaria una en general). Será del estilo a esta:


SELECT * FROM POSTS ORDER BY POSTID DESC LIMIT 0,25

Ahora utilizaremos esa consulta para recorrer los resultados generando un <item> por cada fila que nos devuelva. Para ello usaremos la conexión entre PHP y MySQL.\r\n


// Objeto de Conexión
$conexion = mysql_pconnect(\’RUTA_SERVIDOR\’,\’USUARIO\’,\’CONTRASEñA\’);
mysql_select_db(\’NOMBRE_BD\’,$conexion) or die(mysql_error());

// Ejecutar la consulta ($consulta contiene la consulta SQL citada anteriormente)

$resultado = mysql_query($consulta) or die(mysql_error());
// Mientras $resultado siga devolviendo filas creamos un
while ($fila=mysql_fetch_array($resultado)) {
?>

http://www.web.com/index.php?p= AUTOR<AUTORl@web.com>
http://web.com/index.php?p=

]]>

}

?>

Como ya avise antes, hay que tener cuidado con las con las fechas del <pubDate>, para eso utilizo una función que me paso Feeddubas que soluciona ese problemilla convirtiendo la fecha al formato de RFC 822 válido.


function makeDate($date) {
$dm=explode(\’ \’,$date);
$f=explode(\’-\’,$dm[0]);
$h=explode(”:”,$dm[1]);
return mktime($h[0],$h[1],$h[2],$f[1],$f[2],$f[0]);
}

Con esto ya tendríais la base de vuestro RSS, otras cosas que podéis añadirle, es controlar si se introducen valores por $_GET (RSS.php?c=1) para tener RSS que filtre por categorías. Eso ya os lo dejo a vuestro criterio.


20
Abr

Como crear un RSS para tu página (I)

RSS
Mucha gente que se hace su propia web o blog, independientemente de cual sea su motivo, querrá disponer de los servicios habituales de una web o un blog convencional. Estas utilidades de las que disponen los CMS, son ya casi imprescindibles para el correcto uso y disfrute de las mismas, y por tanto renunciar a un CMS no puede significar renunciar a estos servicios.

Una de las utilidades más necesarias para cualquier página es el RSS o feed. Para los no iniciados, el feed es un documento en formato XML que contiene información, titulares y noticias de una web, de manera que cada vez que se actualiza, el feed también lo hace. Existen muchos programas cuyo propósito es gestionar estos feeds. Es una buena manera de estar al día con las páginas / blogs / planets que sigues habitualmente sin tener que abrirlas todas, y siempre puedes acceder desde ellos a esa noticia / post en concreto para comentar (en el caso de que se pueda) o ver la pagina en tu navegador habitual.

Como se citó anteriormente, el formato de éste documento es XML, por tanto tendremos que ceñirnos a una referencia para que este documento sea standard y así nadie tenga problemas con él, ampliando un poco mas la accesibilidad de nuestra página / blog. Además, la familia de los feeds se divide en dos escuelas mayoritarias, el RSS (0.x, 1.0 y 2.0) y Atom (1.0). Este último nació para tratar de unificar el RSS o RDF y ha acabo siendo un nuevo modelo pese a seguir en desarrollo.

Nosotros vamos a centrarnos en el más común y en principio preferido por la mayoría de los desarrolladores, el RSS 2.0 . Lo primero que tenemos que entender es la estructura básica de nuestro XML.

<RSS version=”2.0″ >









Este seria el orden habitual de creación del XML para un RSS. Para poder utilizar la mayoría de estas etiquetas, es necesario especificar una serie de doctypes que proveerán al documento de significado. Los más habituales son estos:

<RSS version=”2.0″ xmlns:Dc=”http://purl.org/dc/elements/1.1/”
xmlns:Sy=”http://purl.org/rss/1.0/modules/syndication/”
xmlns:admin=”http://webns.net/mvcb/”
xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:content=”http://purl.org/rss/1.0/modules/content/”
xmlns:wfw=”http://wellformedweb.org/CommentAPI/”
xmlns:dc=”http://purl.org/dc/elements/1.1/” >

Ahora, vamos a ver para qué son las etiquetas. Comenzamos con <channel>, que es un meta-elemento, es decir, va a proporcionar información sobre el feed y sobre la web a la que pertenece. Todos sus subitems estarán relacionados con dicha información.

El siguiente elemento mas importante es <item>, y deberá haber uno completo por cada entrada que se quiera enviar vía RSS. Por lo general entre 5 y 25 entradas. Lo que identifica a un <item> es su <guid>, que es un identificador único que servirá a los agregadores para saber si hay elementos nuevos, además del <pubDate> del <channel>. Si el <guid> ya existe, el agregador lo ignorará (esto es importante de cara a las modificaciones de una entrada).

Hay que tener en cuenta, que el <pubDate> no admite nada mas que fechas en formato RFC 822, por tanto tal vez debamos crearnos una función que devuelva el valor almacenado en ese formato más específico.

La <image> esta formada por tres subitems, <url> (el src de la imagen), <link> (la URL a la que apunta la imagen) y <title> (el texto alternativo o alt). Estos subitems se renderizan en un equivalente al <a href="link"><img src="url" alt="title" /></a>.

Y con ésto ya quedaría claro que es un RSS… En el proximo artículo lo generaremos con PHP y MySQL.

To be continued…


19
Abr

ServiceManager beta

PHP
Después de muchos días sin poder postear por diversos motivos (primero router que no sincroniza en días, luego se me murió el O.S. y luego la constante acumulación de trabajo en el curro) vuelvo y con sorpresas.

Acabo de terminar una aplicación (en su primera beta) que os ayudara a gestionar los Services de los Servidores más habituales. En esta primera versión añadí Apache, MySQL (en este articulo tenéis como instalarlo como un servicio, ya que por defecto no lo hace), SQL Server y el IIS.

La aplicación es sencilla y practica. Un icono en la barra de tareas que tiene un menú contextual que carga con las opciones disponibles según los servers que tengáis instalados. Desde ahí podréis detener o iniciar cualquiera de ellos con un simple click.

También incorporé una opción para que arranque automáticamente con Windows si se desea.

Requiere el Framework de .NET ya que esta programado en C# pero podéis bajarlo gratuitamente desde el enlace que os dejo aquí. Si tenéis alguna sugerencia ya sabéis donde encontrarme.

Framework 1.1 : descargar.

ServiceManager : Descargar.


Entradas siguientes »