miércoles, 28 de diciembre de 2011

Shortcuts para NetBeans


  • Ctrl + Space: auto-completado de código (Intellisense)
  • Alt + Insert: generado de código, por ejemplo: constructor, getter’s y setter’s, override, etc
  • Ctrl + Shift + (flecha arriba o abajo): copia las líneas seleccionadas hacia arriba o abajo
  • Alt + Shift + (flecha arriba o abajo): mueve las líneas seleccionadas hacia arriba o abajo
  • Ctrl + R: con el cursor sobre el identificador, renombra todas las ocurrencias (refactor)
  • Ctrl + (página arriba o abajo) o Ctrl + Tab: cambia entre los archivos abiertos
  • Ctrl + F4: cierra el archivo actual
  • Ctrl + F2: abre el navegador de los miembros de la clase
  • Shift + Esc: maximiza/minimiza el editor de código
  • Alt + Shift + F: formatea el código
  • Ctrl + #: activa diferentes ventanas:
    • CTRL+1 – Project
    • CTRL+2 – Files
    • CTRL+3 – Favorite
    • CTRL+4 – Output
    • CTRL+5 – Services
    • CTRL+6 – Tasks
  • ALT+F7: busca todas las ocurrencias de llamado de un método en particular
     
Otra funcionalidad interesante es la que ayuda a documentar las funciones, generando PHPDoc:
    Poner el cursor en la línea previa a la declaración de función, escribir /** y presionar [ENTER].

Un par de links con info interesante sobre el tema:
http://nb61beta.blogspot.com/2008/04/corre-mas-rpido-que-el-viento-y-llega_20.html
http://luauf.com/2008/04/23/algunos-atajos-de-teclado-para-netbeans-6/

lunes, 19 de diciembre de 2011

Envio de mails masivos en Sugar CRM

Fue una tortura hacerlo andar... pero se logró
El problema:
Cuando creaba Campañas en Sugar CRM no se enviaban los mails, quedaban siempre en cola. Si entraba por el administrador podía enviarlos manualmente, pero no se enviaban automáticamente en las horas que se marcaba el envío.
El sugar está instalado en un Linux Debian.
Solución
 Primero descubrí que estaba faltando configurar el crontab (equivalente a los scheduler de win). Se corrige entrando por consola y haciendo
/var/www/SugarCRM# crontab -e
y agregando la línea
* * * * * cd /var/www/SugarCRM; php -f cron.php > /dev/null 2>&1
... tal cual, con los asteriscos incluídos.
Si el cron no llegara a estar arrancado hacer
 etc/init.d/cron start
(http://www.cyberciti.biz/faq/howto-linux-unix-start-restart-cron/)
Bien, hasta aquí esto debería funcionar, pero en mi server no funcionaba... Había otro problema, el cron que pusimos trata de ejecutar php -f cron.php, el archivo cron.php está en donde instalamos el sugar. Los asteriscos indican cada cuanto se ejecuta... el asterisco incida "todos los valores posibles" para la posición en que se encuentre (http://es.wikipedia.org/wiki/Cron_%28Unix%29)

.---------------- minuto (0 - 59) 
|  .------------- hora (0 - 23)
|  |  .---------- día del mes (1 - 31)
|  |  |  .------- mes (1 - 12) O jan,feb,mar,apr ... (los meses en inglés)
|  |  |  |  .---- día de la semana (0 - 6) (Domingo=0 o 7) O sun,mon,tue,wed,thu,fri,sat (los días en inglés) 
|  |  |  |  |
*  *  *  *  *  comando para ser ejecutado

Bueno, hice esto y mi sugar sigue sin mandar mails...
Entonces pruebo por línea de comando tirando
# php -v
y me dá bash: php: command not found
o sea le falta el cliente phpcli que está tratando de usar el cron!
hago
# aptitude install php5-cli
se instala el php cli y después el php -v funciona...
Después de esto, cuando veo los mails que estaban en cola ya están saliendo.
Otra cosa que puede fallarles es que tengan algo mal programado en "Tareas programadas" del sugar, entren en Administración -> Tareas programadas y revisen dos relacionadas con los mails y cada cuanto se ejecutan (por defecto vienen para correr solo por la noche).
Bueno... espero que a alguien le sirva de ayuda.

El EASYPHP no me andaba, y como lo configuré para que ande

De www.easyphp.org saqué el Easy PHP. Un coso que te instala el php, el apache, un mysql con phpmyadmin y otras cosas mas para usarlo como ambiente de desarrollo. El tema es que no podía hacer andar el servidor apache, me decía "Apache no puede ejecutar. Otro servidor web está utilizando el puerto".
Yo tengo instalado el windows vista y éste easyphp está buenísimo para poder usar vista y desarrollar en php.
Como se instala por defecto en el port 80, y ahí está normalmente el IIS escuchando, asique lo que se me ocurrió fue pasar el apache al puerto 81, para eso entro en EasyPHP -> Configuración -> Apache. Al hacer click ahi abre el httpd.conf donde cambio las siguientes dos líneas.

donde dice:
Listen 127.0.0.1:80
Pongo:
Listen 127.0.0.1:81

y donde dice
ServerName localhost
pongo
ServerName localhost:81

Cambiando de ésta manera deberíamos poder acceder así a las web del apache poniendo: localhost:81
Eso es lo que yo esperaba... pero al iniciar el apache me sigue dando el error. Lo que es muy raro porque no debería darlo, bueno el tema es que después de muuucho dibagar por internet buscando una solución lo único que encuentro es mucha gente con el mismo problema y otros que le indican cómo cambiar el puerto (lo que hice ahí arriba) aunque no funciona porque sigue tirando el mismo mensaje.
Así que seguí probando hasta que conseguí hacerlo andar...
Además de cambiar el puerto, como se indica arriba hay que entrar en EasyPHP -> Configuración -> Easy PHP y destildar la opción que dice: "Comprobar puerto TCP antes de iniciar servicio". Y santo remedio... la cosa empezó a andar...

¿Cómo cambiar el idioma de un componente instalado en Joomla?

Ésto ya me pasó un par de veces. Tengo un sitio con Joomla 1.5 instalado y funcionando y le instalo un nuevo componente que bajé. En éste caso un libro de visitas: el Phoca Guestbook. Dicho componente, como varios otros, se instala sin mayores problemas desde Extensiones->Instalar-Desinstalar. Pero el problema es que no tiene forma de instalar automáticamente las traducciones a otros idiomas, fuera del inglés que viene por defecto.
Pero instalar otros idiomas de componentes en Joomla es bastante sencillo:
1- se baja el archivo de idioma que se quiere instalar y se lo descomprime.. .queda una carpeta "xx-XX" (en mi caso "es-ES", de español de españa, no hay de argentina, pero viene a ser lo mismo)
2- se abre ftp contra nuestro sitio y se copian los archivos dentro de la carpeta "es-ES" descomprimida en el directorio donde tenemos instalado Joomla en la carpeta /language/es-ES/ (o el idioma que corresponda, para el frontend y para traducir el administrador en la carpeta /Administrador/language/es-ES/
listo. ya funciona en el idioma español, el método también sirve para otros componentes que no instalen automáticamente la traducción también.

Instalación de Sugar CRM¿Como pasar el Sugar CRM a español? y ¿Sugar CRM con php 5.3.1?

Esta semana tuve que hacer un par de instalaciones de SugarCRM, un CRM muy bueno pero que presentó un par de problemas para su instalación.
El primer problema que se me presentó es que luego de instalado la primer vez no funcionaba bien la edición para agregar nuevos campos en los registros. Pasó que quería agregar el campo Nextel ID en las cuentas, y no podía porque no funcionaba la edición. Luego de mucho rebuscar veo que es por un problema con la versión de php, que actualmente va por la 5.3.0; pero Sugar está en php4. Debo decir que después de cambiar la versión de php por la 4 no hubo más problemas en cuanto al funcionamiento de todas las funciones del programa.

El segundo problema me surgió al tratar de cambiar a español el idioma de Sugar. Ocurre que Sugar va por la versión 5.5.1RC pero todavía no terminaron de traducirla, por lo que la última versión disponible del modulo de idioma español es para la versión está para la versión 5.2 de Sugar. Por lo yendo a Admin-> Module loader", no deja subir el archivo dando el error "The uploaded file is not compatible with this version of Sugar: 5.5.1RC" (o sea "El archivo subido no es compatible con esta versión de Sugar Suite: 5.5.1RC").
La solución es bastante simple, hay que abrir el archivo manifest.php (se en la raíz del módulo de idioma) y cambiar donde dice
" array (
'exact_matches' => array (
),
'regex_matches' => array (
'5\.2\.0[a-z]?'
),
)"
Por " array (
'exact_matches' => array (
),
'regex_matches' => array (
'5\.5\.1[a-z]?'
),
)"

Y más adelante hay que cambiar donde dice
" // version of code
'version' => '5.2.0j',"

por
" // version of code
'version' => '5.5.1RC',"
volver a meter el archivo en el zip y luego subirlo.
Ésta solución es temporal hasta tanto salga una versión en español completa. Otra solución mucho más trabajosa pero mejor es armar una nueva traducción uno mismo.