2016-02-18

Tutorial para darle permiso remoto a un usuario Vagrant para entrar a MySQL desde una IDE Remota como Navicat.



En la linea de comando en la consola, ponemos esto para tener permiso externos con el user root, para todas la database que tenga mysql dentro.

mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION; FLUSH PRIVILEGES;"

Con este código de abajo lo hacemos solo para el usuario user1demo y solo para una database: db1demo: en lugar de ver todas las DB que hay dentro, esto es para una mayor control.
mysql -u root -e "GRANT ALL PRIVILEGES ON db1demo.* TO 'user1demo'@'%' IDENTIFIED BY '' WITH GRANT OPTION; FLUSH PRIVILEGES;"

Y después nos conectamos vía SSH al equipo MySQL en mi caso lo estoy haciendo a una maquina virtual creada con Vagrant + Puphpet.com con Navicat Premium como IDE remota para trabajar con MySQL.

Login con los datos para entrar a mysql desde la consola que utilizamos antes y que cargamos en Puphpet para configurar a mysql:


Set datos para entrar por SSH a la maquina virtual vía Navicat:



Datos de mi conexión de ejemplo con Navicat Premium lo importante esta en negrita y puede cambiar según los cargado en Puphpet.com, em nombre de mi maquina viertual es M1 pero puede ser cualquiera.


********************
*General Information
********************
Tipo de servidor: MySQL
Nombre de Conexión: M1
Nombre del Host/ Dirección IP: 127.0.0.1
Puerto: 3306
Nombre de usuario: dbuser
Guardar contraseña: True

********************
*Advanced Information
********************
Configuración de Localización: C:\Users\xxTuUserxx\Documents\Navicat\MySQL\servers\M1
Codificación: 65001 (UTF-8)
Mantener el Intervalo (sec): N/A
Usar conjunto de carácteres de MySQL: True
Uso de Compresión: False
Conexión automática: False
Uso Avanzado de Conexiones: False

********************
*SSL Information
********************
Usar SSL: False
Usar Autentificación: False
Clave de Cliente: 
Certificado de Cliente: 
Certificado de CA: 

********************
*SSH Information
********************
Uso del túnel SSH: True
Nombre del Host/ Dirección IP: 127.0.0.1
Puerto: 2222
Nombre de usuario: vagrant
Método de autentificación: clave Pública
Clave Privada: C:\test\m\.vagrant\machines\m1\virtualbox\private_key
Guardar Frase de Contraseña: False

********************
*HTTP Information
********************
Usar túnel HTTP: False
Túnel URL: 
Codificar la consulta de salida con Base64: False
Usar la autenticación de la contraseña: False
Nombre de usuario: 
Guardar contraseña: False
Utilice la autenticación de certificado: False
Clave de Cliente: 
Certificado de Cliente: 
Certificado de CA: 
Use Proxy: False
Proxy Host: 
Proxy Puerto: 0
Proxy Nombre de usuario: 
Proxy Guardar contraseña: False

********************
*Other Information
********************
Versión de Servidor: N/A
Protocolo: N/A
Info: N/A

2015-11-10

Como utilizar Composer + CakePHP 2.x

Hola para utilizar Composer con CakePHP 2.x tenes que hacer lo siguiente en la consola.

$ cd app/ $ curl -s https://getcomposer.org/installer | php $ php composer.phar require --no-update opauth/opauth:dev-wip/1.0 opauth/twitter:dev-wip/1.0 $ php composer.phar config vendor-dir Vendor $ php composer.phar install


  1. Entramos al directorio de nuestro proyecto
  2. Agrego la librería "opauth" a  modo de prueba
  3. Bajamos Composer si no lo tenemos en la maquina
  4. Configuramos Composer para guarda todo dentro de nuestra carpeta "app/Vendor" 
  5. Instalamos las librerias via Composer después de configurarlos para CakePHP
Entramos a nuestro archivo "app/Config/bootstrap.php" y le agregamos esto al final
App::import('Vendor', array('file' => 'autoload'));

Y para utilizarlos desde un controller como "UsersController.php" solo tenes que hacer
$Opauth = new Opauth\Opauth($config); $data = $Opauth->run();
Esto es un ejemplo con una libreria, pero es valido para cualquier que utilices con Composer dentro de CakePHP.

2015-10-26

Hosting que ofrecen de forma gratuita alojamientos de servicios en la nube con NodeJS y mas


image
Parse un lugar donde alojar nuestras aplicaciones en la nube sin necesidad de montar ningun servidor, parse trabaja con las plataformas IOS, OSX, Android, JavaScript, Windows Phone 8, Windows 8, .NET, Xamarin, Unity y REST API. A demás nos ofrecen un servicio de monitorización en tiempo real de nuestras aplicaciones o incluso ejecutar nuestros propios programas en la nube, con Parse podemos crear nuestras redes sociales en cuestión de minutos. Un servicio bastante interesante para comenzar a desarollar ya que su servicio gratuito esta bastante bien.
image
Nitrous.IO nos ofrecen de forma gratuita desplegar una aplicación, con 384Mb de RAM y 750Mb de espacio en disco. Podemos alojar proyectos en: Ruby/Rails, Node.js, Python/Django, GoDispone de un Web IDE bastante completo el cual se puede usar para entornor colaborativos, permite conexión con GitHub. Podemos usar diferentes bases de datos como MongoDB o Mysql o trabajar con memcached entre otras opciones. En lugar a tener en cuenta por su gran diversidad de servicios que ofrecen.
image
Openshift es un proyecto de Red Hat de computación en la nube. Podemos trabajar con diferentes lenguajes como Java, Ruby, PHP, Node.js, Python y Perl, o usar frameworks CakePHP, Django, Ruby/Rails o Tornadoentre otros. Ee cuanto a base de datos podemos usar Mongodb, Mysql o PostgreSQL. Dispone conexión con GitHub y acceso SSH. Es un lugar bastante robusto y con una gran comunidad.
image
Appfog nos ofrece 2Gb de Ram y la posibilidad de instalar 8 servicios de forma gratuita. Nos permite desplegar aplicaciones en Java, Java rails, Java Spring Mysql, Node, Node Express, PHP, Drupal, Django, Python, Ruby/Rails entre otros. Como base de datos podemos usar Mysql, MongoDB, PostgreSQL, RabbitMQ o Redis. A demás nos permite instalad diferentes Addons como por ejemplo SendGrid, MongoHQ, ElephantSQL, Logentries entre un gran listado. También puedes elegir la región donde desplegar tus sitios. Para mi es el lugar mas completo que conozco.
image
En Heroku puedes programar en Ruby, Node.js, Clojure, Java, Python y Scala, podemos trabajar conPostgres, Memcache, Mongo, Redis o Hadoop entre otros servicios, nos ofrecen la posibilidad de instalar multitud de addons,como Cluster Mysql, MongoHQ, Treasure Data Hadoop, MongoLab, Pusher, Spreedplyentre otros. Usa Git para los despliegues y ofrece un servicio para clonar rápidamente nuestras aplicaciones. Otra alternativa a considerar gracias a la cantidad de Addons que nos ofrecen.
image
Cloudno.de es otra de las alternativas que nos permiten tener un plan gratuito, esta pensada para el desarrollo en Node.js y es de las pocas que ofrecen CouchDB, a demás de Redis, nos permite usar WebSockets y usa para desplegar Git. Podemos usar nuestros propios dominios o un subdominio que elijamos cuando creemos nuestra aplicación.
 
 
 
 
 
 
Como veis existen diferentes sitios donde alojar nuestros proyectos, algunos pueden sernos de mayor utilidad que otro dependiendo de nuestras posibilidades, en HispaBigdata usamos AppFog para nuestros proyectos, ya que cubre todas nuestras necesidades. Os dejamos unacomparativa de diferentes sitios con los planes que ofrecen, este esta comparativa es de sitios que ofrecen Node.js, a demás viene un gran listado de otros proveedores para que dispongáis de mas alternativas de las que hemos hablado.

2015-07-28

Como crear tu TAB en tu FANPAGE de FaceBook como un Desarrollador (27-08-2015), sin nada externo y gratis.

Voy a comomentar lo que hay que hacer para poder tener tu TAB dentro de una pagina de FaceBook "FanPage".

Requerimiento:


1 - Tener un usuario en FaceBook

2 - Este usuario tiene que estar activo como desarrollador en LINK

3 - Si tu perfil fue activado como Desarrollador, vas a poder crear una APP, para la red social.


4 - Crear una App y Cargas todo los datos Ejemplo:


5 - Indicas que es de tipo "Page Tab"

6 - Le agregas los premisos en "App Center Permissions" para que pueda ser instalada como TAB.



7 - Activar la APP al publico, con un click en YES y tiene que quedar en VERDE.



8 - Tener una FanPage creada donde vas a instalar el TAB que estas creando.

9 - Estando logiado con la FanPage, generar este link

https://www.facebook.com/dialog/pagetab?app_id=499999999999999&redirect_uri=https://URL-DE-DESTINO-QUE-ESTA-DENTRO-DE-LA-APP/

Detalles:
  1. 499999999999999 tiene que ser el codigo "APP ID" que tedio FB.
  2. https://URL-DE-DESTINO-QUE-ESTA-DENTRO-DE-LA-APP/ tiene que ser la misma URL que cargaste dentro de la APP, como pagina de destino del TAB, cuando creaste tu APP. Si es distinto vas a tener un mensaje de error de parte de FB.
10 - Con la URL generada correctamente la pegas en una ventana nueva y vas a tener que ver algo como esto, si esta todo Ok.


Ahh también en lugar de generar una URL como la del paso 10, se puede hacer por POST, como lo muestra la documentación de FB, en este link.
https://developers.facebook.com/docs/graph-api/reference/v2.4/page/tabs


Listo eso es todo, para tener tu TAB dentro de tu FanPage.

Saludos y compartilo si te fue útil.




2015-07-14

Diferencia entre las carpetas "/Plugins" vs "/app/Plugin" en CakePHP

La diferencia que hay entre las carpetas "/Plugins" vs "/app/Plugin" son.

/Plugins: Se utilizar para guarda de manera central todos los plugins que utilizan todo los sitios que están utilizando esa versión de CakePHP. Ya que dentro de un sitio podemos tenes una versión de CakePHP para muchos sitio con ejemplo /app, /app2 /app3 /etc.. y todos esto utilizarían este Plugin.

/app/Plugin:
Pero si queremos tener un Plugin puntual para nuestro /app, podemos sobre escribir la carga poniendo un versión distinta dentro de la carpeta "/app/Plugin" ya que CakePHP primero busca si existe dentro de "/app/Plugin" y si no existe sube al nivel superior y lo busca en "/Plugins" si tampoco lo encuentra en este lugar, da error ya que no se puede cargar el plugin.

Conclusión para sitio complejo, que esta dividido en múltiples módulos "/app, /app2, /app3, etc.." lo recomendable es ponerlo en un "/Plugins" si solo tenes un sitio donde no vas a tener múltiples modulos "app", lo podes poner donde mas te gustes, no hay diferencia.

2015-07-10

Como activar PHPStorm 8 o superior para que corrar en 64Bit con Java de 64Bit

Para poder ejecutar PHPStorm en 64Bit tenes que tener configurado el path "JAVA_HOME" en mi caso es "C:\Program Files\Java\jre1.8.0_45"

Print: http://s25.postimg.org/t37yy8bqn/Print_de_pantalla_634.jpg

Y cambiar el path del acceso directo de PHPStorm por "PhpStorm64.exe" como se ve abajo en la imagen.

Print: http://s25.postimg.org/j76vyl5yn/Print_de_pantalla_635.jpg

Listo eso es todo para que corra en 64bit con nuestro Java de 64Bit.

2015-07-09

Como genera un diccionario en español para PHPStorm con Aspell desde Ubuntu

Hola acá dejo los comando para poder generar una diccionarios para poner dentro del programa PHPStorm.

Desde nuestro terminal en Ubuntu
Pornesmo


// Instalamos el Aspell + las fuentes en Español si no esta en la PC.
sudo apt-get install aspell aspell-es

// Genera un archivo UTF-8 con todas las palabra:
aspell --lang=es --encoding=utf-8 dump master | aspell --lang=es --encoding=utf-8 expand | tr [:space:] '\n' > spanish-utf8.dic
Listo con el archivo "spanish-utf8.dic" que se genero, lo podemos vincular dentro del programa para que soporte castellano y no marque errores cuando no los hay.

Saludos

2015-06-05

Como Activar el AutoCompletar en PHPStorm 8 para CakePHP 2 y 3


Para activar el AutoCompletar en  CakePHP 2.x o 3.x  para las vistas "*.ctp" hay que agregar la siguiente linea.

CakePHP 2.x

    <?php /** @var View $this */ ?>

CakePHP 3.x

    <?php /** @var \Cake\View\View $this */ ?>

Print CakePHP 3.x: http://s25.postimg.org/ovkjbgtbj/Print_de_pantalla_579.jpg

En cosa de tener otro Helper personalizado si no lo muestra hay que agregarlo de manera similar pero en lugar de ser $this tendría que ser $nombreDeMiHelper

Saludos

2015-05-22

Cambiar el tamaño de los discos virtuales *.vdi de una maquinas VirtualBox en minutos y con 2 click, muy simple.

Hola gente hoy le dejo una herramienta que no ayuda a redimencionar de manera simple con dos click un disco virtual con extension *.vdi de la maquina VirtualBox y a redimencionar las partición desde el mismo programa.

El programa se llama CloneVDI Versión 2.05 y solo pesa unos 260Kb.


  1. Los paso a seguir son ejecutar el programa
  2. Buscar el disco virtual *.vdi siempre con las maquina apagada por completo, nunca con el estado de se maquina congelada, o en Pausa. 
  3. Le poner un nombre al archivo de destino, le cambias el tamaño "Increase virtual drive size to" y le tildas la opción reampliar partición "Increase partition size"
  4. Listo le da click en procesar y esperasa.
  5. Después va a tu maquina virtual y le cambiar el disco por el nuevo que se genero y si todo esta ok eliminar el disco viejo.
Print con un ejemplo:
Donde creo un disco de 25Gb a 35Gb y expando la partición



NOTA: Es no es valido para maquinas con "Instancias" o "SnapShot" de la maquina virtual porque lo que haces en es momento es crear varios discos. Para esos caso lo mejor es hacer un clon de la maquina virtual, eliminar todas las instancias para quedarte solo con la que te interesa de esa manera VirtualBox haces un Merge de todos los "SnapShot" y te genera un solo disco virtual (*.vdi) de nuevo. Cuando ya tenes solo ese disco, podes hacer los pasos anteriores con CloneVDI


2015-04-14

Como crear una pagina Web o Documento y restringir por Tags para que "Google Translator" traduzcas ese texto.



Acá dejo unos tags HTML para bloquear la traducción de una pagina entera o texto parcial dentro de una sitio web o documento.

Es muy útil para hacer documentación; por ejemplo que traduzca los textos explicativos y los comentario del código, pero nunca modifique el código del ejemplo.

Esto es para texto puntuales dentro del sitio:

Send us feedback at <span class="notranslate"><?php echo 'Hello PHP' ?></span>.

Esto es para bloquiar todo la pagina:
<head>
<meta name="google" value="notranslate" />

<head>