27 septiembre 2012

PhoneGap

Voy a empezar a jugar con PhoneGap.... me llama particularmente la atención ahora que lanzan un servicio nuevo llamado PhoneGap Build que basicamente hace el trabajo de compilar y publicar las aplicaciones...  es decir, uno como desarrollador solo debe pensar en codificar, mientras que PhoneGap Build se encargaría del resto.

Y la parte interesante es que un mismo fuente funcionaría para Android, iOS, BB, WM ....  

Tengo que leer más al respecto y empezar de hecho a jugar con el servicio... estaré publicando mas conforme vaya aprendiendo más.

30 julio 2012

Respaldar y Restaurar un sitio en IIS 7

En IIS6 era muy fácil realizar respaldo de un solo sitio dentro del servidor.  Simplemente botón derecho sobre el sitio y seleccionabamos EXPORTAR... y luego usábamos el archivo XML resultante para IMPORTAR y crear una copia de ese sitio.  Muy útil para mover un sitio de un servidor a otro por ejemplo.

Pero no lo hicieron fácil en IIS7 .

Para IIS7 hay una herramienta para respaldar todo los sitios del servidor en un solo paquete:  Vean este enlance.

Pero para respaldar un solo sitio, tenemos que trabajar en linea de comando:


  • ejecuten el Comand Prompt en modo Administrador
  • Busquen la carpeta de instalación del IIS, típicamente C:\windows\system32\inetsrv\
  • ejecuten la instrucción 
appcmd list site 
  • con ésto van a  visualizar una lista completa de los sitios.  Tomen nota de los ID de los sitios, porque a la hora de crear un sitio nuevo tenemos que asegurarnos que tenga un ID distinto a todos estos. 
appcmd list site "myOldSite" /config /xml > myXMLFile.xml 
  • con ésto crea un archivo .xml en la misma carpeta, con la configuración del sitio que queremos respaldar.   Esto incluye toda la información del sitio, sus bindings, sus configuraciones, sus carpetas virtuales, etc...
  • Ese archivo .xml resultante, hay que abrirlo para editarlo (digamos en Notepad por ejemplo) y cambiar todas las referencias del ID y del NAME por uno nuevo que no coincida con los que vimos anteriormente en el listado que ejecutamos en el paso 3.  Salven el archivo y sus modificaciones
appcmd add site /in < "myXMLFile.xml"  
  • y con ésto va a crear el sitio nuevo, utilizando de modelo el respaldo del archivo original.  

06 julio 2012

ColdFusion para Desarrolladores en Java

Acabo de leer este post de Mike Nimer.   El hombre nos recuerda que "ColdFusion es Java".   ColdFusion no es un lenguaje propietario, algo inventado por Adobe (ni Macromedia ni Allaire), sino una colección de librerias Java, JSP, y otro montón de cosas para aprovechar también jQuery y HTML5.   Por eso es que parece un lenguaje en sí mismo, pero no deja de ser Java.  Adobe ha utilizado una gran cantidad de librerias Open Source y ha adaptado esas funcionalidades a JSP.  Hay un compilador en tiempo de ejecución que traduce de ColdFusion a Java, y también tenemos servlets montados dentro de un Class Loader modificado.  
En el servidor de ColdFusion hay también algunas otras tecnologías de Adobe incluidas, así que el paquete que se obtiene al comprar una licencia de ColdFusion es muy completo.

Ahora bien, lo que yo no sabía es que, si bien por algún tiempo se ha podido integrar código de Java dentro de una aplicación ColdFusion, ahora, con CF10, se puede incluir código ColdFusion dentro de una aplicación Java !!!!.    En ese sentido, un desarrollador de Java puede entender a ColdFusion como una libreria más.

Y las ventajas de ésto para un desarrollador Java?:


  • Integracion con PDF:  ColdFusion maneja muy bien lo que es crear PDF en base a un HTML.  Por esta función nada más, ya se justifica la compra de una licencia de CF Standard, pues es más económica que muchas librerias de PDF para Java (o .NET), y de mejor resultados.   Pero además de imprimir un HTML a PDF, tiene capacidad de crear PDF y manipularlos.  (CFPDF) 
  • Query de Queries.  Parece que no hay otras librerias o servidores que permitan hacer una consulta a un dataset junto con otra consulta de base de datos.  Es decir, poder unir los resultados de una consulta realizada en MS-SQL con los datos obtenidos de otra consulta en ORACLE y después filtrarlos.  Y retornar el resultado como un dataset.
  • Encriptación:  la herramienta de encriptación de ColdFusion es de lo más poderoso que hay.. utiliza la libreria RSA BSafe Crypto-J con la que se obtiene encriptación FIPS-140 Compliant y NSA Compliant .........
  • Manejo de documentos: CF tiene una sola función (CFFILE) para manejo de FTP, manipulación de documentos, ZIP, y ahora también un espacio "virtual" para almacenamiento de documentos.
  • Manejo de imágenes:  CF tiene CFIMAGE que si bien ofrece las mismas funcionalidades que Java, lo hace por medio de una libreria de funciones simplificadas.   Creación de captcha, redimensionado de imágenes, marcas de agua, etc.
  • Indexación y búsqueda utilizando Apache Solr.. no hay mucho que hacer, solo usarlo.
  • Correos:  adaptando las librerias de Java, ColdFusion puede enviar 2 millones de correos por hora.  Además permite conectividad con Exchange, con POP y con IMAP
  • Integración con MS-Office:  Tiene funcionalidad para crear presentaciones Power Point y para llenar hojas de datos Excel. 
  • Integración con .NET.  una misma aplicación que utilice código en ColdFusion, Java y .NET ?.   Una de las funciones más interesantes para un desarrollador de Java sería la posibilidad de permitir que la aplicación Java autentique a los usuarios en los dominios de NT de una red Microsoft. 
  • Reportes:  utiliza la libreria de Jasper Reports. 

03 julio 2012

Railo 4.0 Beta. Quién ha jugado con Railo ?

Estoy aprendiendo a jugar con Railo.  Qué tan distinto que ColdFusion es ?..   Voy a estar publicando mis experiencias.

De momento, les cuento que salió un Railo 4.0 Beta ..  con funcionalidad muy CF10 incluyendo hasta Closures:


02 julio 2012

Múltiples Instancias de ColdFusion: Cómo obtener el nombre de la instancia ?

Esto es útil cuando uno corre múltiples instancias de ColdFusion, si uno tiene un balanceo de servidores por ejemplo; resulta útil saber en cuál instancia está corriendo mi código.

En CF MX a CF 9, como estamos montados sobre JRUN, esto se hacía así:

<cfdump var="#createobject("java","jrunx.kernel.JRun").getServerName()#">

Pero en CF10, como estamos sobre Tomcat, la cosa es así:

<cfdump var="#createobject("component","CFIDE.adminapi.runtime").getinstancename()#">

para más información pueden leer a Charlie Arehart

29 junio 2012

Inicializar un QueryNew con datos en CF10 (y 9.02)

En un post original de Matt Gifford leí sobre la nueva sintaxis de QueryNew que existe desde CF9.02 y CF10.

Los que somos más viejos en esto, nos acostumbramos a que si queremos llenar de datos iniciales un objeto tipo query definido en tiempo de ejecución, teníamos que popularlo dentro de un ciclo, con un QueryAddRow y luego QuerySetCell en cada vuelta del ciclo.

O podemos hacerlo ahora con la funcionalidad extendida del QueryNew:


<cfscript>
qryPeople = queryNew(
'firstname, lastname, email',
'varChar, varChar, varChar',
[
{
firstname : 'Matt',
lastname : 'Gifford',
email : 'me@monkeh.me'
},
{
firstname : 'Dave',
lastname : 'Ferguson',
email : 'never@doingitwrong.com'
},
{
firstname : 'Scott',
lastname : 'Stroz',
email : 'angry@stackover.flow'
}
]
); </cfscript>


25 junio 2012

Recuperar la clave del CFIDE/Administrator de ColdFusion10

Parece que es muy sencillo recuperar o cambiar la clave del CFIDE/Administrator en Coldfusion10.  solo hay que ejecutar el .bat en la carpeta \ColdFusion10\cfusion\bin\ passwordreset.bat (.rsh para linux/mac).   Después de eso, hay que ingresar nuevamente al CFIDE/Administrator para crear una clave nueva.