Sin duda alguna, la etiqueta de HTML “meta” son de gran importancia para los buscadores.
Sabiendo ésto, me dí a la tarea de agregar en el archivo principal de drupal (page), la etiqueta meta autor, description y keywords con la finalidad de que google me indexe mejor.
Pues cometí un pequeño error, ya que a la etiqueta description lo dejé estático, y puse algo como : “blog dedicado a GNU/Linux y software libre…”, se preguntarán: “¿Y cual es el error?”, pues fácil, google cada que me encontraba en alguna de sus busquedas, ponia como texto preeliminar esa frase; me di cuenta al hacer algunas resultados intencionales para ver que tal aparecia mi blog, y el resultado fué el siguiente:

Como podrán ver en la primera página encontrada que es mi blog, el título lo muestra perfecto, sin embargo el texto previo muestra lo que puse en la etiqueta description, y en todas las busquedas siempre muestra ese mismo texto; entonces para crear la etiqueta description “dinámica“, la solución para el CMS Drupal, fué simplemente instalar el plugin Meta tags y automáticamente en cada post, el description es lo que está escrito en el post de ésta manera:

Ésto quiere decir, que ya las búsquedas serán mejores, ya que en el texto previo, mostrará exactamente lo que dice el post, ahora en los resultados de google, aparecerá ésto:

Para los que utilizan wordpress, pueden utilizar éste plugin: All in One.
Espero que les haya servido éste consejo a todos los bloggers
June 16, 2009 | Etiquetado en: | No Comments 
Al momento de desarrollar una aplicación con base de datos, se debe tomar en cuenta la seguridad del mismo, uno de los ataques más comunes es el sql injection que consta básicamente de introducir código sql en cajas de texto de nuestro sistema con el fin de introducirse ó sacar información.
Un ejemplo de sql injection sería el siguiente:
<?php
// Consultar la base de datos para verificar si hay una coincidencia de usuario
$consulta = "SELECT * FROM usuarios WHERE usuario='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($consulta);
//Supongamos que el usuario tecleó ' OR ''=' en el campo de password:
$_POST['username'] = 'admin';
$_POST['password'] = "' OR ''='";
// Esto quiere decir que la consulta enviada a MySQL seria:
echo $consulta;
?>
La variable $consulta contendría:
SELECT * FROM usuarios WHERE usuario='aidan' AND password='' OR ''=''
Esto permitiría a cualquier usuario ingresar al sistema sin password.
Para realizar una consulta segura, utilizaremos 2 funciones mysql_real_escape_string y sprintf, se pudiera resolver también modificando la configuración del php para no permitir caracteres especiales, pero ésto sería una desventaja, ya que no permitiría la portabilidad del código.
<?php
// Conexion
$enlace = mysql_connect('mysql_host', 'mysql_usuario', 'mysql_contraseña')
OR die(mysql_error());
//Consulta segura
$query = sprintf("SELECT * FROM libros WHERE autor='%s'", mysql_real_escape_string($autor_nombre));
mysql_query($query);
?>
Ojo, si no hay una conexión con el servidor, la función mysql_rea_space_string marcará un error.
En caso de una consulta de logeo:
<?php
// Función para eliminar "/" y añadir comillas
function comillas_inteligentes($valor)
{
// Retirar las barras
if (get_magic_quotes_gpc()) {
$valor = stripslashes($valor);
}
// Colocar comillas si no es entero
if (!is_numeric($valor)) {
$valor = "'" . mysql_real_escape_string($valor) . "'";
}
return $valor;
}
// Conexion
$enlace = mysql_connect('mysql_host', 'mysql_usuario', 'mysql_contraseña')
OR die(mysql_error());
//consulta segura
$consulta = sprintf("SELECT * FROM usuarios WHERE usuario=%s AND password=%s",
comillas_inteligentes($_POST['username']),
comillas_inteligentes($_POST['password']));
mysql_query($consulta);
?>
May 22, 2009 | Etiquetado en: | 1 Comment Un Web Service es un componente de software que se publica en un servidor Web y que permite la comunicación distribuida entre sistemas o aplicaciones en diferentes máquinas que invocan métodos que estos devuelven un resultado en formato XML.
Este documento XML puede ser procesado por cualquier aplicación ó sistema operativo capaz de procesar XML.
En esta imágen se muestra el funcionamiento de un servicio web en donde el database podría ser un servicio web , que éste, devuelve un resultado en formato XML a los diferentes dispositivos que lo consumen.

Para comenzar a desarrollar el servicio web es necesario tener instalado el IDE Monodevelop, puedes checar esta guia de instalación monodevelop. También se requiere tener instalado el servidor de pruebas XSP2:
# aptitude install mono-xsp2
1.- Primero creamos una nueva solución ASP.NET Aplicación web, en Archivo->Nueva solución y le ponemos como nombre WebServiceMono:

2.- Ahora, del lado izquierdo en donde dice solución, aparecerá el nombre de nuestro proyecto “WebServiceMono“, damos click derecho y vamos en Añadir->Nuevo archivo… y seleccionamos ASP.NET Servicio web con codebehind y le ponemos como nombre “webservice”:
3.- Ahora crearemos un sencillo método dentro del archivo webservice.asmx, que sólamente sumará 2 números, el código completo del archivo webservice.asmx quedaría de la siguiente manera:
using System;
using System.Web;
using System.Web.Services;
namespace WebServiceMono
{
[WebService(Name = "myWebService",Description = "Mi primer webservice en mono",
Namespace = "http://www.antoniomtz.org")]
public class webservice : System.Web.Services.WebService
{
public webservice () {}
//Se crea un sencillo método para sumar 2 números.
[WebMethod]
public int sumar(int a, int b)
{
return a + b;
}
}
}

4.- Ahora agregaremos una liga en el archivo Default.aspx:
<form id="form1" runat="server">
<a href="webservice.asmx">WebService</a>
</form>

5.- Construiremos el proyecto tecleando F5 y si instalamos bien el servidor xsp, nos abrirá un navegador web y trabajará de manera local por el puerto 8080 (éste proyecto no se podrá ver al exterior aún), nos deberá aparecer una página en donde sólamente aparecerá una liga que dice WebService:

6.- Al dar click en la liga, nos aparecerá un tipo asistente para poder probar nuestros métodos que hayamos creado, del lado izquierdo aparecerá información sobre nuestro servicio web así como los métodos, damos click en el método sumar y luego en la parte de arriba test, nos pedirá los 2 parametros, le damos cualquier número y luego en el botón invoke, ésto tendrá como resultado un archivo XML con el resultado:
Esto fué un pequeño tutorial de cómo crear un servicio web desde la parte del software libre utilizando mono para ello.
Por ahora nuestro web service funcionará de manera local, para poder consumirlo desde el exterior es necesario instalar el módulo mono para apache y hacer las respectivas configuraciones, aquí les dejo una guia de instalación y configuración del módulo mono para apache, cuando lo tengan configurado, sólamente pasamos los archivos de nuestro proyecto al directorio virtual en apache y para consumirlo ahora será:
http://tudominio/dirvirtual/webservice.asmx
En el próximo post, crearemos una aplicación en dónde consumiremos el web service que acabamos de crear.
VideoTutorial de éste ejercicio
May 20, 2009 | Etiquetado en: | 5 Comments Vala es un nuevo lenguaje de programación que pretende acercar características de programación modernas para desarrolladores de GNOME sin imponer requisitos adicionales en tiempo de ejecución (máquina virtual) y sin utilizar una ABI diferente en comparación con las aplicaciones y bibliotecas escritas en C. La sintaxis de Vala es similar a C# y soporta estas características modernas:
Vala está diseñado para permitir el acceso a las bibliotecas de C, sobre todo librarías basadas en GObject, sin necesidad de agregados en tiempo de ejecución (como por ejemplo gtk# en C#, gtkmm en C++). Todo lo que se necesita para utilizar una librería con Vala es un archivo API (.vapi), que contiene la clase y método de las declaraciones en sintaxis Vala. Este archivo .vapi es necesario únicamente en el momento de compilación.
valac, el compilador de vala, traduce el código fuente de Vala en código fuente C y archivos de cabecera (.h). Utiliza el sistema de tipo GObject para crear clases e interfaces declaradas en el código fuente de Vala.
May 4, 2009 | Etiquetado en: | No Comments
Todos los derechos reservados. Tecnologia.