Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

Instalar Symfony2 en Yosemite con MAMP

Un amigo mio me comento que Symfony es una gran opción para programar web, pues vamos a probarlo, así que veremos como instalar Symfony2 en Yosemite con MAMP!!

Primero de todo me bajo MAMP para correr un entorno de desarrollo local en mi MacBook Pro Retina de 13″ (Sí, estoy orgulloso de él)

Empezamos mal, pues al arrancar MAMP ya no funciona

dyld: Symbol not found: _iconv Referenced from: /usr/lib/libmecabra.dylib Expected in: /Applications/MAMP/Library/lib/libiconv.2.dylib in /usr/lib/libmecabra.dylib /Applications/MAMP/Library/bin/apachectl: line 80: 2799 Trace/BPT trap: 5 $HTTPD "$

MAMP error Yosemite

 

Para arreglar esto nos vamos a la carpeta Aplicaciones de nuestro Mac y allí entremos en:

bin -> apache2 -> bin

Cambiamos el nombre del fichero envvars a _envvars

MAMP ya arranca, eso es bueno.

 

 

 

Ahora nos vamos a instalar Symfony, que es lo que queremos… entramos en la web de Symfony y vemos que nos dicen que para instalarlo tenemos que utilizar un script llamado composer, pues lo que ellos digan, si es así vamos allá.

Abrimos un terminal de Mac y lanzamos

curl -sS https://getcomposer.org/installer | php

Ningún problema, siguiente orden:

sudo mv composer.phar /usr/local/bin/composer

Ya estamos otra vez, «error», la carpeta no existe, no es un gran problema, cambiamos la ruta y punto

sudo mv composer.phar /usr/bin/composer

Perfecto, esto ya está, otro paso más hacia Symfony, ahora tenemos que instalar el aplicativo utilizando composer

composer create-project symfony/framework-standard-edition ruta-donde-instalaremos-la-aplicacion/

Que bonito! empieza a hacer cosita, a descargar otras, me hace preguntas del servidor de Mysql: usuario, pass, puerto bla bla bla bla y para terminar, algo que no había sucedido nunca, «error».

Cagontodo, mira que está siendo un parto esto

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-update-cmd event terminated with an exception

[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command

Volvemos a buscar información y como dice el error un poco más arriba, es debido al date.timezone de php.

Ningún problema!!! MAMP tiene un fabuloso sistema de plantillas para corregir esto, en la configuración del php.ini de la distribución de PHP que estemos lanzando en ese momento.

Ni corto ni perezoso me voy al php.ini del MAMP y añado la linea:

date.timezone = "Europe/Madrid"

Lanzo nuevamente el instalador y… redoble de tambores!!! tampoco va… mismo error, mi no entender.

Me rasco la cabeza a modo orangután pensando que narices puede ser, creo un fichero para lanzar un phpinfo() y me está devolviendo bien date.time

Entonces ocurrió un milagro de esos que no se bien bien porque me vienen a la cabeza y pienso

¿Y si el apache está lanzando una versión de PHP, pero la consola de comando está lanzando la versión que viene nativa en Yosemite?

Con una aureola celestial a mis espaldas lanzo desde linea de comandos un php -v y veo que me devuelve la versión 5.5.14 cuando MAMP trabaja con la 5.5.10 , ahí está, tenía razón, a veces pienso en Marilyn Manson y su costilla.

Bueno señor@s, pues miro donde está el php.ini nativo de Yosemite y como no, está en /etc/php.ini.default así que copiamos el fichero para que sea php.ini

 sudo cp /etc/php.ini.default /etc/php.ini

Añadimos la susodicha linea de date.timezone, lanzamos nuevamente el composer y ahora sí!!!! Con lagrimas en los ojos doy gracias a mis padres y a todo el mundo que me ha apollado en esta ardua carrera….

Seguimos, siguiente paso es cambiar los permisos de ciertos directorios

chmod 0777 app/{cache,logs}
chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/{cache,logs}

Una vez hecho esto, arrancamos nuestro servidor

php app/console server:run

Y al navegar a la url de config  localhost:8000/config.php deberíamos ver algo así:

yosemite-symfony-start

Pero… ¿Yo vi ese mensaje?

A estas alturas ya sabéis que yo no vi ese P#t@ mensaje

 

Yo me comí un :

 

Major problems

Major problems have been detected and must be fixed before continuing:
    1.    Vendor libraries are missing. Install composer following instructions from http://getcomposer.org/. Then run "php composer.phar install" to install them.

Bueno, haremos lo que nos dice y lanzaremos comando dentro de nuestra web

composer install

Pero continua dando el mismo error, me meto otra vez en San Google y miro que narices es este error, encontrando esto:

 

http://stackoverflow.com/questions/27744855/symfony-2-6-error-after-using-composer-vendor-libraries-must-be-installed

Pues se ve que es un Bug actual, menos mal, empezaba a estar cansado de tanto fracaso y error.

Bueno, pues ya está señor@s, tenemos Symfony2 instalado en nuestro Mac con MAMP.

Ahora solo hace falta programar, que es lo realmente fácil :p

 

 

Migrar un blog WordPress de una Url de desarrollo a una Url de producción

Para entender un poco la situación debemos entender que tenemos al usar wordpress:

1) Ficheros php que encontramos en la raíz del directorio de desarrollo, los ficheros de http://new.dominio.com
2) Base de datos Mysql del dominio new.dominio.com
3) Fichero de conexión PHP que enlaza los ficheros (punto 1) con la base de datos (punto 2) este fichero se llama wp-config.php y está en la raiz del directorio

Para mover los ficheros a otro lado, cada uno puede hacer lo que quiera, a mi me gusta comprimir los en un tar llevarme el fichero al servidor destino y descomprimirlo. Entramos por SSH en el servidor y escribimos:

tar czvf backup.tar.gz *

Nos llevamos el fichero a la ubicación del nuevo servidor y escribimos

tar xzvf backup.tar.gz

Muy bien…ahora tenemos los ficheros en el nuevo servidor, pero tenemos que cambiarles el propietario, porque los ficheros conservan el usuario:grupo que tenian en el antiguo servidor, para ello escribimos:

chown usuario:grupo * -R

Así cambiamos de forma recursiva los propietarios de los ficheros.

Una vez hecho esto tenemos que migrar la bbdd, esto cada uno lo hace como quiere, la idea es coger la bbdd de desarrollo volcarla en un .sql irse a la base de datos de producción y ejecutar ese fichero. A mi personalmente me gusta Navicat, así que las capturas serán de Navicat

Nos vamos a la base de datos de desarrollo, botón derecho y Dump SQL -> Estructure and Data

DumpSQL

 

 

 

 

 

 

 

 

Esto nos generará un fichero .sql con las instrucciones para regenerar la base de datos.

Ahora nos tenemos que ir a la base de datos de producción a restaurar dicho fichero, para hacer esto no es mas que ejecutar una query.

 

 

 

 

LoadQuery

 

 

 

 

Perfecto, ahora ya tenemos fichero y base de datos en el nuevo servidor, ahora solo nos faltan dos detalles.

Cambiar los datos del fichero wp-config.php para que funcionen con la nueva conexión. Nos metemos por ssh en el nuevo servidor y hacemos un:

 

 

 

vi wp-config.php

wp-config

 

 

 

 

 

 

 

 

Escribimos el usuario/password de la conexión a la base de datos y el nombre de la base de datos en el caso que sea diferente.

Perfecto! somos los mejores, ahora nos vamos a nuestro sitio web y…. funciona, que bonito, que alboroto otro perrito piloto!!!

Solo un detalle, al primer click que hagas te vas al site antiguo 🙁

Dentro de la base de datos guarda información referente a la URL del sitio, con lo que aún está apuntando a http://new.dominio.com en vez de http://www.dominio.com

Para poder corregir esto, tenemos que lanzar una sentencia de SQL para poder corregir esto ¿Que sentencia? pues para esto tenemos una página que nos ayuda mucho:

http://themergency.com/generators/wordpress-site-url-migration-generator/

Aquí veremos que nos pide la URL antigua, la URL nueva y el prefijo que le hemos puesto en la instalación del WordPress.

Normalmente el prefijo suele ser wp_ pero me he encontrado locos que le han puesto como prefijo 8jZsyWKjTn_

Bueno, si tu eres uno de esos locos, pues en el apartado de prefijo deberás escribir eso… la página te generará un código tal que así

/* update all post permalinks */
update 8jZsyWKjTn_posts
set guid = REPLACE(guid, 'http://new.dominio.com', 'http://www.dominio.com')
where guid LIKE '%http://new.dominio.com%';

/* update all post content */
update 8jZsyWKjTn_posts
SET post_content = REPLACE(post_content, 'http://new.dominio.com', 'http://www.dominio.com')
where post_content LIKE '%http://new.dominio.com%';

/* update all post meta */
update 8jZsyWKjTn_postmeta
SET meta_value = REPLACE(meta_value, 'http://new.dominio.com', 'http://www.dominio.com')
where meta_value LIKE '%http://new.dominio.com%';

/* update all options */
update 8jZsyWKjTn_options
set option_value = REPLACE(option_value, 'http://new.dominio.com', 'http://www.dominio.com')
where option_value LIKE '%http://new.dominio.com%';

Donde indica que debe actualizar los contenidos de la base de datos con la nueva URL.

Nos vamos nuevamente al Navicat, desde el apartado de querys creamos una nueva y enganchamos el churro de código que nos ha dado la página.

Hecho esto ya nos funcionará el Blog perfectamente!!!

Errores de replicación en entornos virtuales y el error 8456 o 8457

desesperaciónComo la mayoría de los errores graves de un informático empiezan por una tontería de nada:

Me da error al acceder a la cuenta Exchange que acabo de crear ¿Que extraño…?

Desde ese punto inicial empezamos a tirar de la manta a ver que ocurre, por OWA entramos bien, que raro…

El objeto existe en el servidor de Exchange, perfecto y en el servidor del 2008… no ahí no existe.

Es en ese momento cuando me empiezo a poner pálido y las gónadas ascienden hasta rodear la garganta.

Empiezo a tirar del visor de sucesos y me encuentro los sucesos 8456 y 8457 el servidor destino/origen rechazo la petición de replicación, la famosa frase:

 

 

«El servidor de destino está actualmente rechazando las solicitudes de replicación»

Cabrón…¿!Porque rechazas a tu hermanito¡? con lo que él te quiere.

 

Lanzamos un  repadmin /options *  y vemos

 

Repadmin: running command /OPTIONS against full DC SRVEX2010
Current DSA Options: IS_GC DISABLE_INBOUND_REPL DISABLE_OUTBOUND_REPL
Repadmin: running command /OPTIONS against full DC SRV2008
Current DSA Options: IS_GC
Satán te pillé!!!
Nos vamos al servidor que toca, en este caso el del Exchange y ponemos:
repadmin /options localhost -DISABLE_OUTBOUND_REPL
repadmin /options localhost -DISABLE_INBOUND_REPL
Después de esto y un par de cigarrillos para dar tiempo, problema resuelto 🙂
 Bueno, espero que sea de ayuda!!!
Fuente:
http://guylabs.ch/2013/11/06/vmware-snapshot-and-recovery-fix-active-directory-replication/
http://www.bassas.pro/index.php/site-replica-vpn-i-mtu-misteris-resolts/

Montar nuestra alternativa gratuita a Exchange usando Gmail

Supongo que esto es algo que siempre hemos querido tener, una alternativa al gran preciado Exchange, quizás no podamos reemplazar exactamente al Exchange, pero si cubrir de una forma gratuita una gran parte de nuestras necesidades.

Vamos a ver cuales eran mis necesidades:

1) Tener un servidor de correo interno para poder delegar el envío de mails pesado o mailings masivos a alguien y despreocuparnos del trabajo.

2) Evitar el bloqueo por DNS inverso, antes con mi antiguo Exchange tenia problemas porque los mails que entregaba eran mediante la IP estática de mi router ADSL, pero no era la misma que la IP del servidor ISP donde tengo albergada la Web, con lo que ciertos destinatarios me ponían como SPAM.

3) Que los Iphone, Blackberrys etc etc pudieran ver y recibir el correo de la empresa.antes aunque me

Google se preocupa por mi

Hoy mirando las preferencias de la cuenta Google (¿Que no lo hacéis habitualmente vosotros?) , me he dado cuenta de esta opción

Bueno, así que me está negando la visión de ciertas imagenes explícitas en mis búsquedas, que no me parece mal… del todo… pero me podrías haber preguntado!!!

Iphone 3GS Vs Htc Hero

Y llegó el titán… después de muchos intentos fallidos, creo que ha llegado un arduo competidor de Iphone 3GS

Htc Hero

Htc Hero

¿Porque creo que este si que es un real competido del Iphone? porque cumple las 2 aspectos importantes:

1) Hardware: Es un teléfono MUY competitivo, pero tambien los hubo anteriormente…

Processor Qualcomm® MSM7200A™, 528 MHz
Sistema operativo Android™
Memoria ROM: 512 MB
RAM: 288 MB
Dimensiones (LxAlxAn) 112 x 56.2 x 14.35 mm
Peso 135 gramos con batería
Pantalla Pantalla táctil TFT-LCD de 3,2 pulgadas con resolución HVGA de 320×480
Red HSPA/WCDMA:

  • 900/2100 MHz
  • Hasta 2 Mbps de subida y 7,2 Mbps de bajada

GSM/GPRS/EDGE cuatribanda:

  • 850/900/1.800/1.900 MHz

(Frecuencia de banda y velocidad de datos según operador.)

Control del dispositivo Trackball con botón Intro
GPS Antena GPS interna
Conectividad Bluetooth® 2.0 con EDR y A2DP para auriculares inalámbricos estéreo
Wi-Fi®: IEEE 802.11 b/g
HTC ExtUSB™ (conector mini USB 2.0 de 11 patillas y toma de audio en uno)
Cámara Cámara en color de 5,0 megapíxeles con auto enfoque
Formatos de audio compatibles MP3, AAC(AAC, AAC+, AAC-LC), AMR-NB, WAV, MIDI and Windows Media® Audio 9
Formatos de vídeo compatibles MPEG-4, H.263, H.264 and Windows Media® Video 9
Batería Batería recargable de iones de litio
Capacidad: 1350 mAh
Tiempo de conversación:

  • Hasta 420 minutos en WCDMA
  • Hasta 470 minutos en GSM

Tiempo en espera:

  • Hasta 750 horas en WCDMA
  • Hasta 440 horas en GSM

(Estos tiempos dependen de la red y del uso que se haga del teléfono.)

Ranura de ampliación Tarjeta de memoria microSD™ (compatible con SD 2.0)
Adaptador de CA Rango de tensiones/frecuencia: 100 ~ 240 V de CA, 50/60 Hz
Salida de CC: 5 V y 1 A
Características especiales Sensor G
Brújula Digital

Iphone 3GS
3gs
Frente al Iphone : http://www.apple.com/es/iphone/specs.html

El más importante (A mi parecer) Software, Android es un sistema que está madurando, pero a un ritmo impresionante, con una pantalla multitouch Htc Hero y la nueva versión de Android, hacen un conjunto capaz de hacerle frente al mejor punto de Iphone, el sistema operativo.

«Y»

Dejo a parte esta y porque me parece quizás un punto que hará decantar a mucha gente… el soporte Flash.

Si señoras y señores, Htc Hero y Android traerán soporte Flash, ¿Que quiere decir eso? pues total libertad en Web, aplicaciones (Air) en el teléfono local, la posibilidad de que millones de programadores flash, puedan programar aplicaciones (y venderlas) para el nuevo sistema de Google ¿hará este punto declinar la balanza? quizás si…

¿Que opinais vosotros?

Después de usar Htc Hero

http://www.joan-garcia.com/de-iphone-a-htc-hero/