lunes, 30 de julio de 2012

Primeras imágenes del IPHONE 5

Acá les dejo las primeras imágenes, del IPHONE 5, como era de esperarse no han habido cambios muy grandes en el aspecto físico de este, teniendo una pantalla mas grande y un ancho menor:





miércoles, 25 de julio de 2012

Migrando un sitio web en Joomla



Aunque odio los CMS's con todo mi corazón muchas veces es inevitable tener que trabajar con ellos, el día de hoy estuve trabajando en una pequeña migración de un sitio hecho en JOOMLA y me pareció buena idea compartirlo con uds,  y aunque sea muy trivial para algunos los que llevan buen tiempo trabajando en el medio, no deja de hacer falta una ayuda para los menos experimentados en el tema!

Paso 1 (Montaje de archivos)


Lo primero que se necesita hacer es cargar en el hosting o servidor los archivos correspondientes al sitio
esto lo puedes realizar con cualquier herramienta de conexión FTP o si tienes acceso directo al servidor será mucho mas rápido, en mi caso utilice el FileZilla!. Ten en cuenta que esto puede tomarte un buen tiempo ya que el total de archivos es aprox 60.000, si tienes acceso al root del sistema o si cuentas con una herramienta par descomprimir los zips desde la herramienta así subes un solo zis y descomprimes directamente en el servidor.

Paso 2 (Restauración de la base de datos)


Supongo que ya tienes el script de base de datos de tu sitio (usualmente un archivo .sql) si no es así puedes generarlo fácilmente desde el phpMyAdmin instalado en tu servidor PHP (casi todos cuentan con uno)  desde la función exportar del mismo.




Lo que primero deberás hacer es crear una base de datos dentro de tu servidor y un usuario para la misma, esto lo puedes realizar desde el panel de control de tu hosting, una ves creada la base de datos entras al phpMyAdmin y seleccionas la base de datos que acabas de crear  y seleccionas la opción SQL
de la misma




copiamos y pegamos el contenido del archivo .sql y le damos en el botón continuar, tardara un tiempo mientras ejecuta el script, si tienes problemas para la carga te sugiero que uses algún cliente de MySQL como HeidiSQL o Sequel Pro (usuarios MAC).



Paso 3 (Cambiando la cadena de conexión)


Procedemos con el cambio de la cadena de conexión del Joomla, básicamente tienes que modificar estas tres lineas de código de tu archivo de configuración el cual se encuentra en el root de la carpeta de tu sitio web en joomla y tiene el nombre de configuration.php





      public $host = 'tu host'; //Usualmente localhost o 127.0.0.1  
      public $user = 'el usuario que creaste';  
      public $password = '';  
      public $db = 'nombre de la base de datos';  




Le das guardar y listo,
tienes migrado tu sitio web

Espero te haya servidor de ayuda!
Saludos y hasta la próxima

domingo, 22 de julio de 2012

Como crear y configurar un certificado SSL en WAMP para navegación segura por HTTPS




El día de hoy me vi en la necesidad de montar un entorno de pruebas para una aplicación de Facebook que me encuentro desarrollando. Debido que a partir del año pasado es necesario poseer un SSL para trabajar sobre Facebook me vi en la necesidad de configurar mi servidor de aplicaciones PHP (WAMP) con un certificado SSL. A continuación documentare el proceso que encontré googleando un poco pero que no esta disponible en español.

Descripción del servidor:

SO: Windows Server 2003
Servidor de aplicaciones: WAMP 2.2
PHP
MySQL

PASO 1: Crear el certificado SSL

Según la documentación de WAMP debemos entrar por linea de comando a la ruta wamp\bin\apache\apache2.2.8\bin (donde 2.2.8 corresponderá a la versión del apache que venia con tu  WAMP, en mi caso 2.2.22) y ejecutar las siguientes lineas de comando:


 openssl genrsa -des3 -out server.key 1024  

Al ejecutarse esta linea de comando te solicitara una contraseña la cual podrás elegir a tu preferencia.

Antes de continuar, quiero hacer un paréntesis ya que al intentar ejecutar el comando openssl obtenia un error en la dll ssleay32.dll "The ordinal 968 could not be located in dynamic link library LIBEAY32.dll" para solucionarlo instale el OpenSSL win32  light , y reemplace los archivos que menciono a continuación en el directorio bin del apache del WAMP

ssleay32.dll
libeay32.dll
openssl.exe


Bueno continuando con la creación del certificado ejecuto las siguientes lineas de comando desde el cmd de windows


 copy server.key server.key.org  
 openssl rsa -in server.key.org -out server.key  
 openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt -config C:\wamp\bin\apache\apache2.2.8\conf\openssl.cnf  

Recuerda que para la tercera linea de comando el directorio apache2.2.8 corresponderá a tu versión de apache instalada, una vez se haya ejecutado la 3ra linea de comando se te solicitaran alguna información tuya y de tu servidor.

PASO 2: Montaje en WAMP

Finalizada la creación del certificado aparecerán en el directorio bin (wamp\bin\apache\apache2.2.8\bin) de tu apache los archivos: server.key y server.crt  los cuales deberás copiar en el directorio de configuracion  del mismo (wamp\bin\apache\apache2.2.8\conf) en los directorios que deberás crear 


ssl.key (para server.key)
ssl.crt (para server.crt)

PASO 3: Configuración

Edición del httpd.conf file y php.ini

Para el caso del httpd.conf deberemos descomentar las lineas

 LoadModule ssl_module modules/mod_ssl.so   
 Include conf/extra/httpd_ssl.conf   

y agregar bajo la linea del Include

 <IfModule ssl_module></IfModule>   

Para el caso del php.ini (el cual hace referencia al que esta en la carpeta bin del apache wamp\bin\apache\apache2.2.8\bin) deberemos descomentar la linea: 

 extension=php_openssl.dll   

Como pudiste ver incluimos el directorio conf/extra/httpd_ssl.conf dentro de la configuración de nuestro apache a continuación definiremos algunos parámetros para el certificado creado.


 Quitar las comillas a "SSLMutex default"  
 Buscar la linea de <VirtualHost _default_:443> y cambiar la linea que dice DocumentRoot por:   
 "C:/wamp/www/" con comillas y cambiar el Error log de igual manera   
 Cambiar el SSLCertificateFile a "conf/ssl.crt/server.crt"   
 Cambiar el SSLCertificateKeyFile a "conf/ssl.key/server.key"   
 Cambiar <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> a <Directory "C:/wamp/www/"> y agregar las siguientes lineas de codigo dentro del tag Directory  
 Options Indexes FollowSymLinks MultiViews   
 AllowOverride All   
 Order allow,deny   
 allow from all   

Verifica  que la linea CustomLog "logs/ssl_request_log"  este des comentada


PASO 4: Prueba

Para verificar nuestra configuración introducimos la siguiente linea de comando donde intrudujimos los comando del openssl:

 httpd -t   

Si hemos realizado todo correctamente nos aparecerá OK reiniciamos servicios del WAMP
y tenemos montado el SSL localmente para publicarlo en una dirección publica o dominio de servidor
modificamos la linea dentro del httpd_ssl.conf y reiniciamos servicios del servidor

 ServerName localhost:443' a 'ServerName www.tudominio.com:443'  



Espero les sirva de tanta ayuda como para mi!
Saludos


sábado, 14 de julio de 2012

Lector de twitter con javascript y jquery




Hola para el día de hoy tuve que crear un pequeño lector de mis tweets a partir de javascript y html, aprovechando que twitter posee un gran numero de servicios JSON y XML que nos brindan información acerca de datos de busqueda y de timeline de los usuarios  use la funcion de ajax de jquery para extraerla a mi pagina web personal!

he aqui el codigo:


html:


 <div class="twitter_holder">  
      <div id="millertaker" class="twitter">  
      </div>  
      <div id="mill" class="blank">  
      </div>                      
 </div>  


javascrip:


se realiza el llamado al servicio del API de twitter a la URL: https://twitter.com/statuses/user_timeline/Millertaker.json?count=2 donde {Millertaker} es el nombre  de usuario que se ha de consultar , {json} el formato en que se recibe la información  y count  el numero de tweets del timeline que se quieren mostrar. Quiero hacer notar que para realizar peticiones a un use el dataType de la funcion ajax de jquery como 'jsonp' para no tener problemas por crossdomain durante esta (usualmente como error 400). 


la función callbackMillertaker recibe como parametro el JSON que contiene la información correspondiente al resultado de la consulta al servicio JSON de twitter, el formato de este esta descrito en el siguiente link 





 $.ajax({  
 url: 'https://twitter.com/statuses/user_timeline/Millertaker.json?count=2',  
  dataType: 'jsonp',  
  contentType: "application/json; charset=utf-8",  
  success: callbackMillertaker  
 });  
 function callbackMillertaker(data){  
 $.each(data, function(key, val) {  
         $('#millertaker').append('<span>'+val.text.parseURL().parseUsername().parseHashtag()+'</span>');  
         $('#mill').append( '<div class=marco><img src='+val.user.profile_image_url+' alt='+val.user.screen_name+' /></div>'+  
         '<span>@'+val.user.screen_name+'</span>' );  
  });  
 }  
 String.prototype.parseURL = function() {  
      return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&~\?\/.=]+/g, function(url) {  
           return url.link(url);  
      });  
 };  
 String.prototype.parseUsername = function() {  
      return this.replace(/[@]+[A-Za-z0-9-_]+/g, function(u) {  
           var username = u.replace("@","")  
           return u.link("http://twitter.com/"+username);  
      });  
 };  
 String.prototype.parseHashtag = function() {  
      return this.replace(/[#]+[A-Za-z0-9-_]+/g, function(t) {  
           var tag = t.replace("#","%23")  
           return t.link("http://search.twitter.com/search?q="+tag);  
      });  
 };  

Las funciones parse permiten parsear los hastags , links y menciones dentro del texto del tweet como links a las mismas.