carlosrovira.com
Empezando como Consultor Independiente
Noviembre 30th, 2006 - [Enlace local]
Hoy ha sido mi último dÃa en Bull España. Como ya anuncié en las pasadas conferencias de MIF, empiezo una nueva etapa profesional como Consultor Independiente focalizado en soluciones RIA con Flex, Flash y espero que (pronto) también la nueva promesa: Apollo.
Debo decir que la partida ha sido dulce y amarga a la vez, ya que se mezclan las ganas, ilusión y esperanzas propias del comienzo de algo nuevo con la despedida de todos los amigos y compañeros con los que he compartido mi vida y mis horas de trabajo durante estos dos últimos años. Me refiero, como no, a toda esa maravillosa gente de Bull: Lucas, SilvÃa, Alberto, Pablo, Jorge, Felipe, Chema, Ana, Verónica, Javi, Sergio, Carlos, Bigas, Mesa, Luis, Alfredo, MarÃa, Raquel, Guillermo, Manuel…¡un abrazo enorme desde aquà a todos! ¡sois los mejores!
).
Trabajar por mi cuenta era algo que me atraÃa mucho (los que me conocen lo saben bien). De hecho, creo que era hasta cierto punto inevitable que me lanzase antes o después. Creo que ahora tengo la situación idonea para abordar esta nueva aventura tan emocionante debido a las oportunidades que me están surgiendo últimamente. De momento, parece que el futuro pinta bastante prometedor gracias a la increible acogida que está teniendo en los últimos meses todo lo referente a RIA y Flex. El mercado está registrando una demanda cada vez mayor de profesionales formados en estas nuevas tecnologÃas. Sin duda, esto se debe a las nuevas oportunidades que ofrecen estas soluciones que prometen cambiar la forma en la que entendemos Internet hoy en dÃa, asi como facilitar el uso diaro de las aplicaciones web. Para mi todo esto supone un gran reto profesional y una oportunidad excelente de seguir aportando mi granito de arena a esta nueva revolución tecnológica. Intentemos disfurtar del viaje
…
» Leer más, comentarios, etc...
Buayacorp
EnvÃo de emails con imágenes incrustadas - .NET 2
Noviembre 30th, 2006 - [Enlace local]
Por si alguien le sirve, muestro un pequeño ejemplo en C# para enviar emails con imágenes incrustadas en el cuerpo del mensaje.
El servidor SMTP que se usa en este caso es el de GMail
MailMessage mensaje = new MailMessage("fulano@gmail.com", "alguien@empresa.com"); mensaje.Subject = "Prueba imágenes embedidas"; // Crear la vista HTML del mail, notar lo que se pone en el tag "img" AlternateView html = AlternateView.CreateAlternateViewFromString(@"<h1>Buayacorp</h1> <img src=""cid:buayacorp_logo"" /><br /><p>Esto es una prueba de una imagen incrustada</p>", Encoding.UTF8, "text/html"); // Crear la vista de texto plano, siempre es bueno para aquellos que no les gusta el HTML AlternateView texto = AlternateView.CreateAlternateViewFromString("BuayaCorp\n\nTexto plano", Encoding.UTF8, "text/html"); // Adjuntar el recurso logo.jpg, con id "buayacorp_logo" a la vista HTML LinkedResource logo = new LinkedResource(@"C:\logo.jpg"); logo.ContentId = "buayacorp_logo"; html.LinkedResources.Add(logo); // Añadir las 2 vistas del correo mensaje.AlternateViews.Add(texto); mensaje.AlternateViews.Add(html); // Definir el servidor SMTP, GMail usa SSL para la autenticación SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); smtp.EnableSsl = true; // Ingresar nuestra cuenta de gmail smtp.Credentials = new NetworkCredential("fulano@gmail.com", "contraseña"); smtp.Send(mensaje);
Nota: si desean el código de este pequeño ejemplo, pues sólo tienen que pedirlo
» Leer más, comentarios, etc...
Joan Garnet
Adobe Masked TextInput
Noviembre 30th, 2006 - [Enlace local]
Adobe ha publicado el Masked TextInput en Adobe Flex Exchange, un nuevo componente TextInput con opciones de máscara. Muy útil para guiar a los usuarios a la hora de entrar datos con un formato determinado.
» Leer más, comentarios, etc...
niko's mini factory
Nuevo namespace en Spring 2.0
Noviembre 30th, 2006 - [Enlace local]
Una forma mas bien rara de configurar los beans de Spring parece ser la que Rod Johnson nos recuerda en una entrada de su blog.
Básicamente se puede utilizar un nuevo namespace "p" para utilizar los atributos de un XML como propiedades de los beans.
Lo que normalmente harÃamos asÃ:
<beans xmlns="http://www.springframework.org/schema/beans"Lo podrÃamos hacer asÃ:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="empleado" class="package.Empleado">
<property name="empresa" ref="empresa" />
<property name="horasSemanales" value="35" />
</bean>
<bean id="empresa" class="package.Empresa" />
</beans>
<beans xmlns="http://www.springframework.org/schema/beans"Un pequeño cambio que podrÃa hacer nuestros XMLs mas compactos, aunque no se si mas legibles.
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="empleado" class="package.Empleado"
p:direccion-ref="empresa"
p:horasSemanales="35" />
<bean id="empresa" class="package.Empresa" />
</beans>
Mas ejemplos aquÃ.
» Leer más, comentarios, etc...
Buayacorp
Validación de datos - Solución
Noviembre 30th, 2006 - [Enlace local]
Continuando con la serie, ¿qué cosas se tienen que cumplir para que el siguiente código sea vulnerable a XSS?
<?php /* Evitar XSS a través de otros formatos */ header('Content-type: text/html; charset=utf-8;'); $color = '000'; if ( !empty($_GET['color']) ) { $color = htmlentities(strip_tags($_GET['color'])); } ?> <html> <head> <title>Anti XSS Page</title> <style type="text/css"> #demo { width: 100%; height: 50px; background: #<?php echo $color; ?>; } </style> </head> <body> <div id="demo"> </div> </body> </html>
Actualización: Bien, luego de haber esperado un cierto tiempo, paso a comentar el problema:
La porción de código mostrada, es vulnerable a XSS solamente en Internet Explorer, puesto que este buen navegador
, posee caracterÃsticas que permiten ejecutar código javascript dentro de una hoja de estilos.
Microsoft Internet Explorer 5 offers an easy-to-use new feature that enables Web authors and developers to vastly improve the appearance and rendering of their Web pages. Using the power of dynamic properties, it is now possible to declare property values not only as constants, but also as formulas. The formulas used in a dynamic property can reference property values from other elements, thereby allowing authors unique flexibility when designing their Web pages.
Ahora que sabemos que se puede ejecutar javascript dentro de la hoja de estilos -en todas las versiones de IE, entonces lo único que tenemos que hacer es usar valores que no sean afectados por la función htmlentities, por ejemplo si se usa lo siguiente f00;left:expression(alert(String.fromCharCode(88,83,83))) (abrir con IE), se mostrará un mensaje con el texto XSS.
Si quieren encontrar más ejemplos (abrir con IE) de este tipo, pueden darse una vuelta por MSDN
» Leer más, comentarios, etc...
Yet Another Programming Weblog
Programadores e interfaces de usuario
Noviembre 30th, 2006 - [Enlace local]
Hay algunos brillantes, pero en general casi todos los programadores que conozco son(mos) muy malos diseñando interfaces de usuario. Esto tiene varios motivos, creo:
- El programador tiende a ver la funcionalidad, no el uso.
- El programador no tiene la formación adecuada (ni el interés(?)) acerca de usabilidad ni diseño. Quizás tampoco la formación adecuada en programación de GUI's
- El programador, casi por definición es vago. Gastará el mÃnimo tiempo en el diseño del interfaz
También hay algunos aspectos que dificultan que un interfaz sea armonioso y usable: los continuos cambios de especificaciones, la indefinición de funcionalidad y de diseño:
- Eso... uhmmm... déjalo también configurableDe todos modos lo que a mi me parece adecuado es que el programador programe un interfaz de usuario diseñado por un diseñador conjuntamente con el cliente, o al menos validado por éste. Si no hay más remedio que diseñarlo por lo menos intentar no hacer el diálogo. En ese mismo enlace hay consejos sencillos sobre lo que no hay que hacer. El ejemplo del GUI de wget es espeluznante... :)
- Ya, ¿pero dónde?
- Ya le encontrarás un hueco...
- Con tantas opciones ¿no será un poco difÃcil de usar?
- ...
La misma entrada en BP
» Leer más, comentarios, etc...
Blog de Sergio �lvarez Fernández
Tutoriales-Flash.com
Noviembre 30th, 2006 - [Enlace local]
Tutoriales Flash es un nuevo portal que como su nombre indica su objetivo es la recopilación de tutoriales sobre la plataforma flash. Además de tutoriales este nuevo portal cuenta con secciones dedicadas a:
- Trucos FLASH
- FAQ’s FLASH
- Enlaces FLASH
Ideal para los que se inician con flash.
» Leer más, comentarios, etc...
Developing my life
ezSQL Database Class - Facilitando el acceso a base de datos
Noviembre 30th, 2006 - [Enlace local]
Cuando empezé a programar como muchos en php, con las primeras pautas que me dió mi amigo Juan Carlos (aka ñolaura) en lo referente a trabajar contra base de datos MySQL. Estos scripts eran masomenos así:
-
$conexion = mysql_connect(’servidor’, ‘usuario’, ‘password’) or die(‘Error al intertar conectar : ‘ . mysql_error());
-
-
-
$sql = ‘SELECT campo1, campo2 FROM tabla’;
-
-
foreach ($registro as $valor) {
-
echo $valor;
-
}
-
}
-
Ahora estas tareas se pueden repetir en varios scripts segun tengamos que insertar, eliminar, actualizar y seleccionar uno o mas registros. Como lo hacía en un par de proyectos, hasta que descubrí algo que me facilitaba realizar estas tareas comunes.
Todas estas tareas se pueden simplificar con ezSQL; la cual es una clase en PHP que disminuye el trabajo cuando trabajabamos con bases de datos, ezSQL funciona con MySQL, Oracle8/9, InterBase, FireBird, PostgreSQL, MS-SQL, SQLite, SQLite C++. Esta librería me ha sido muy útil en los últimos proyectos en que he trabajado.
Veamos como trabaja con MySQl:
-
// Incluimos el nucleo de ezSQL
-
include_once “ez_sql_core.php”;
-
// Incluimos el componente para trabajar con MySQL
-
include_once “ez_sql_mysql.php”;
-
-
// Ahora creamos e instanciamos un nuevo objeto para conectarnos a MySQL
-
$db = new ezSQL_mysql(‘usuario’,‘password’,‘dbmibase’,’servidor’);
-
-
// Realizamos una seleccion
-
$resultado = $db->get_results(“SELECT campo1, campo2 FROM tabla”);
-
-
// Mostramos el resultado de la consulta
-
foreach ( $resultado as $fila )
-
{
-
// Accedemos a los campos como un objeto
-
}
-
-
// Si solo queremos seleccionar una fila
-
$fila = $db->get_row(“SELECT campo1, campo2 FROM tabla WHERE campo1=’valor’”);
-
-
// Si queremos obtener un solo campo o variable
-
$variable = $db->get_var(“SELECT campo2 FROM tabla WHERE campo1=123456″);
-
echo $variable;
-
-
// Si queremos insertar, eliminar y actualizar
-
$db->query(“INSERT INTO tabla (campo1, campo2) VALUES (’valor1′,’valor2′)”);
-
$db->query(“UPDATE tabla SET campo2 = ‘valorxxx’ WHERE campo1=’valor’”);
-
$db->query(“DELETE FROM tabla WHERE campo1=’valor’”);
ezSQL tiene muchas cosas mas que nos facilitarán la vida a la hora de trabajar con base de datos, revisen la documentación para mas detalle y descárgalo si deseas probarlo.
Es todo por este post, nos leemos!
» Leer más, comentarios, etc...
Buayacorp
8 de cada 10 sitios webs tienen problemas de seguridad
Noviembre 30th, 2006 - [Enlace local]
Jeremiah Grossman, fundador de WhiteHat Security, publicó un reporte que muestra datos muy interesantes sobre el estado de la seguridad en aplicaciones web.
Según este reporte, de cada 10 sitios web que usan aplicaciones web hechas a medida, 8 tienen problemas de seguridad.

Pueden encontrar más información en los siguientes documentos:
- Slides con abundantes gráficos
- Reporte detallado (requiere registro)
» Leer más, comentarios, etc...
Navegapolis
Confianza: la prueba del algodón para trabajar con patrones ágiles
Noviembre 30th, 2006 - [Enlace local]
Creo que Joserra ha dado en el clavo. Acabo de leer el comentario de Diego que con escepticismo se pregunta cómo implantar scrum en un equipo de pasotas.
Merece la pena leer el post de Joserra: La confianza y las metodologías ágiles .
¿Pasaría tu equipo o tu empresa la prueba de la confianza?:
¿Los programadores confian en el trabajo y el buen hacer de sus compañeros?. ¿Confían en sus jefes?. ¿Los jefes confían en su equipo?...
La agilidad no se puede implantar en empresas tóxicas. Si el entrenador no confia en sus jugadores, y los jugadores no confian entre ellos, el equipo tiene un mal futuro, y la agilidad no es otra cosa que trabajo en equipo.
» Leer más, comentarios, etc...
avemundi
el menú de apagado de Vista
Noviembre 29th, 2006 - [Enlace local]
Internet tiene cosas impagables, como la reciente polémica sobre el menú de apagado del inminente Windows Vista. La cosa comenzó con un artÃculo de Spolsky criticando la usabilidad del menú en cuestión. Al par de dÃas apareció una traducción del...
» Leer más, comentarios, etc...
Navegapolis
Agile Spain ha vuelto
Noviembre 29th, 2006 - [Enlace local]
¡El feed de Agile Spain vuelve a tener pulso!. Un excelente punto de referencia sobre desarrollo ágil, que nos había dejado sin poder leerlo en los últimos meses, vuelve a la carga. ¡Enhorabuena!.
» Leer más, comentarios, etc...
Bitácora de Javier Gutiérrez Chamorro (Guti)
Snap Preview Anywhere
Noviembre 29th, 2006 - [Enlace local]
He visto en BlueMag, que usa un servicio llamado con Snap Preview Anywhere, que permite añadir a tus páginas la funcionalidad de mostrar una preview de la web que es enlazada.
Añadir la ventana flotante de previsualización de enlaces es realmente fácil.
No hay más que incluir en vuestras páginas el siguiente código:
<script defer="defer" id="snap_preview_anywhere" type="text/javascript" src="http://spa.snap.com/snap_preview_anywhere.js?ap=1
&key=b0861d51d5da18dc68b4caf97ce4b43b&sb=0
&domain=TU_URL"></script>
El resultado es espectacular. Personalmente me parece útil poder ver hacia dónde vas a saltar antes de pinchar un enlace, pero creo que a la larga puede llegar a cansar ver la ventana abriéndose cada vez que se hace rollover, con la consiguiente pérdida de velocidad en la navegación.
¿Qué os parece el resultado?
» Leer más, comentarios, etc...
Reflexiones vs Caos - ror
Ruby on rails en Ubuntu
Noviembre 29th, 2006 - [Enlace local]
Si instalar Ruby on Rails en Windows fue fácil, no pensé que instalarlo en linux, pudiese resultar tan sencillo como lo fue.
Eso sÃ, por si tenÃa algún truquillo tiré de google y visité algunas webs, para no liarla, y me encontré con esta: railes.net mini-guÃa que lo explicaba, funcionó a la primera.
» Leer más, comentarios, etc...
Reflexiones vs Caos - ror
Ruby on Rails
Noviembre 29th, 2006 - [Enlace local]
HabÃa leido parte del libro Beyond Java, la parte en la que habla de Ruby y bastó un comentario para que me decidiese a ver uno de los vÃdeos de ayuda que RoR tiene en su web, particularmente me llamó la atención el que montaba el sistema de weblog: "Monte su blog en 15 minutos".
Era evidente que no iban a ser 15 minutos, pero aún asà quise ver que se podÃa hacer y cuanto tiempo era necesario emplear, dado que si este era muy grande se perdÃa toda la gracia con la que lo anunciaban.
Mi conclusión es que el ejemplo es seguible, incluso para alguien que no haya utilizado nunca RoR, es fácilmente implementable. Es posible crear el weblog en pocas horas, incluso aunque no tuvieses ruby ni rails intalado; una salvedad, es que, en mi humilde opinión, es más un sistema wiki totalmente abierto que un weblog. Dado que no se introduce ninguna seguridad en la publicación, dejando la edición de tus post como un link que podrÃa ser editable directamente por cualquiera, lo que en un weblog, es totalmente inadecuado.
Lo que si es llamativo, es ver lo fácil que aparece el trabajo relacionado con base de datos, montar un CRUD es totalmente inmediato, con unos simples clicks de ratón y lo tienes totalmente operativo.
Para llevar a cabo este ejemplo, simplemente me descargué todo lo que fue necesario, léase: ruby, rails, redcloth (formatea los textos), mysql y su plugin. Todo esto junto con mi editor de textos y a funcionar.
Si buscáis un IDE para desarrollar con Ruby, os recomiendo uno: RadRails. En otro post hablaré de mi experiencia con el, de momento deciros que se basa en Eclipse, y que han añadidos plugins para desarrollar con Ruby y con Rails.
» Leer más, comentarios, etc...
.NET o no .NET, esa es la cuestión
Desarrollar bajo Linux y no morir en el intento (III). CUPS y la cámara WEB, amén del Skype.
Noviembre 29th, 2006 - [Enlace local]
CUPS es mi Némesis o, como dirÃa mi amigo Juan, mi "mosca cojonera, aaaaaay". Y es que no tengo suerte con este software bajo Linux. Nunca he conseguido que funcionara bien del todo.
Ahora el problema era sencillo: pese a haber dado de alta correctamente mi HP 1010 láser, los documentos impresos iban a la cuarta dimensión, o generaban el error de client-not-nosequé. Y un log configurado como nivel debu2 no me daba ninguna pista, todo lo que el sistema escribÃa en ese log era normal... En fin.
En un reinicio, ya ni siquiera se cargaba el servicio, diciendome algo de un error 15. Eso fue ayer. Hoy han publicado una nueva versión que, parece ser, funciona. La he reinstalado sobreescribiendo los ficheros de configuración, he vuelto a agregar la impresora y, de momento, funciona.
Veremos lo que dura, porque otras veces he observado el mismo comportamiento y cuando he ido a imprimir... no funcionaba y he tenido de reiniciar en Windows para poder hacerlo...
Hacer funcionar la cámara Web, una Genus GE111, también, cómo no, ha resultado toda una odisea inenarrable. Una rápida búsqueda por Internet me ha dicho que mi driver es el spca5xx y que no está incluÃdo en el kernel, sino que es necesario parchearlo... Pero mi Gentoo lo tiene como paquete independiente y sÃmplemente con un
emerge spca5xx
he podido instalar el driver y cargarlo en el núcleo... para descubrir que me afecta el bug del ancho de banda. Este bug, presente en algunas configuraciones, hace que el driver no pueda asignar bien el ancho de banda dentro del USB (cosa que he descubierto, claro está, navegando por Internet).
Hay tres soluciones, dos de ellas sencillas que no me han funcionado y la tercera, parchear el parche. Asà que, igual que con el módulo PyQt explicado en la primera entrada de esta serie, he tenido que colocar una nueva versión en el overlay de mi Portage, subir una revisión, modificar el fichero ebuild para que aplique el parche, y actualizar el módulo. Y por supuesto reiniciar linux para que cargue el nuevo módulo, pues no lo tengo compilado con la posibilidad de descargarlos.
Y de momento funciona... mejor que en Windows.
El *** Skype es harina de otro costal. Tras muchas horas mirando aquà y allá, no tengo audio con él porque a la gente que lo hace no le sale de los ejem recompilarlo para 64 bits. Y es que el Skype, que tenemos a nivel corporativo como aplicación de videoconferencia, no es trigo limpio; se trata de un sistema autoencriptado y con código automodificable que al parecer no compila bien bajo 64 bits...
» Leer más, comentarios, etc...
AlexdwBlog()
Guia de cambios Flex 2.0.1
Noviembre 29th, 2006 - [Enlace local]
Interesante enlace con un pdf que nos cuenta los cambios que nos traerá la inminente actualización de flex. A resaltar el soporte para aplicaciones modulares… adios a esos swf iniciales tan pesados Guia de cambios
» Leer más, comentarios, etc...
mundoxbase.info
Nuevo blog oficial de Xailer
Noviembre 29th, 2006 - [Enlace local]
Ya está disponible la nueva Web http://xailer.info para soporte técnico de
Xailer
» Leer más, comentarios, etc...
Spejman's Blog
BackgrounDRb 0.2.1 Lanzado
Noviembre 29th, 2006 - [Enlace local]
La versión 0.2.1 de BackgrounDRb ya está lista para descargarse en el repositorio svn:http://svn.devjavu.com/backgroundrb/tags/release-0.2.1
BackgrounDRb es un framework que extrae procesos del ciclo petición/respuesta de ruby on rails. Sirve principalmente para realizar tareas en background con Ruby on Rails ( más información en bee.com.es/espeja/conferenciarails )
Esta versión corrige bugs de la versión 0.2.0 y todavÃa es considerada experimental.
Para usarla hay que descargarse el código del svn y ponerlo en el subdirectorio de nuestra aplicación rails /vendor/plugins/backgroundrb.
También es necesario actualizar la librerÃa Slave a la versión 1.1.0 ( gem update slave ).
» Leer más, comentarios, etc...
Buayacorp
Tips para mejorar el rendimiento de tus aplicaciones con PostgreSQL
Noviembre 29th, 2006 - [Enlace local]
Unos cuantos tips para mejorar el rendimiento de aplicaciones que hacen uso de PostgreSQL, la mayorÃa de éstos hacen referencia a algunas cosas que nos mal acostumbra MySQL.
- No usar varias consultas pequeñas cuando una sola puede hacer todo el trabajo: Ésta es una practica que he visto muy a menudo en varias aplicaciones que tuve la oportunidad de "arreglar".
Un ejemplo tÃpico de esto es:
php:
$a = query("select ID from tabla1 ..."); $b = array(); foreach($a as $v) { $b[] = query("select ... from tabla2 where ID = $v"); }
- Agrupar pequeños INSERT, UPDATE, DELETE dentro de transacciones: en PostgreSQL cada consulta que se realiza está siempre dentro de una transacción -ya sea implÃcita o explÃcita.
- Insertar datos en grupo (bulk loading) en lugar de INSERTs individuales: del comentario anterior se puede concluir por ejemplo, que si se insertan 1000 tuplas individualmente, entonces se realizarán 1000 transacciones.
En general, muchos de estos "errores" se dan porque normalmente intentamos repetir nuestra "receta mágica"
, para tecnologÃas o herramientas que trabajan de manera distinta.
» Leer más, comentarios, etc...
MadeInFlex
WebOrb 3.0 RC1, FDS para .NET
Noviembre 29th, 2006 - [Enlace local]
Estos amigos de themidnightcoders no se han tentado el corazón y han liberado la versión 3.0 Release Candidate 1 para .NET. Si alguien no sabe que es WebORB bueno, es una implementación de Flex Data Services para desarrolladores en .NET, y creanme que es una posibilidad muy fuerte para la creación de desarrollos corporativos ("Enterprise") con esta herramienta. Además conecta clientes Flex,Flash o AJAX a .NET dlls (.NET Assemblies or Objects) y Web Services. Tiene la implementación por ejemplo de AMF3 (Action Messaging Format), que es un protocolo binario mucho mas rápido y más eficiente que SOAP (Web Services) ya que consume menos ancho de banda.
Es importante que tengan instalado el .NET Framework 2.0 para la correcta instalación y funcionamiento de WebOrb 3.0 y la última versión del flash player.
Primeramente la interfaz esta basada completamente en Flex, un muy buen punto para empezar a gozar de todas las nuevas funcionalidades que trae.
Pestaña de servicios de WebORB
Como ustedes pueden observar tenemos varias pestañas, una por ejemplo de Getting Started donde podemos empezar si somos desarrolladores nuevos , desarrolladores expertos en .NET o cualquiera que desea conectar nuestro Front-End con un objeto .NET (dll) cuenta con una guia bastante completa y comprensible de como hacer nuestra clase de .NET, el proceso de Instalación,la implementación de la dll,Inspeccionar la clase mediante la pestaña services (esto lo tocaremos más adelante en conjunto con un módulo nuevo llamado TestDrive), la creación del proyecto en Flex, además de una introduccion géntil y muy resumida de que es lo que hace WebOrb a grandes rasgos.
Una de las nuevas implementaciones y más poderosas es la pestaña services, y dentro de estas TestDrive, esta permite invocar cualquier método del lado del servidor directamente desde aqui pasandole argumentos (genial ¿no creen?)
TestDrive dentro de la carpeta Servicios
Y por si fuera poco bueno pues podemos bajar el código en ActionScript 3.0 dependiendo en que contexto nos encontremos por ejemplo Flex con Remoting,Flash con Remoting Flex con CAIRNGORM,ARP etc.
Descargar código
Por el momento no esta disponible generar código para CAIRNGORM, o ARP, seguramente cuando lo liberen totalmente tendremos todos estos beneficios. Les pongo aqui un fragmento de código de lo que genera en el caso de Flex con Remoting y AS 3.0
/*******************************************************************
* AddPizzaInvoke.as
* Copyright (C) 2006 Midnight Coders, LLC
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
********************************************************************/
package Weborb.Examples.PizzaService.testdrive
{
import Weborb.Examples.PizzaService.vo.*;
import Weborb.Examples.PizzaService.*;
public class AddPizzaInvoke
{
var m_service:OrderVO = new OrderVO();
public function Execute():void
{
var pizza:Pizza = new Pizza();
pizza.pizzaId = 1;
pizza.details = 'With peperonni';
pizza.quantity = 1;
m_service.AddPizza(pizza);
}
}
}
Tambien tenemos la parte de implementación (pestaña deployment) para nuestras aplicaciónes y es muy sencillo, solo arrastramos la carpeta de nuestra aplicación y listo
Implementación
En cuanto a la parte de problemas (TroubleShooting) y documentación esta impecable y muy sencilla de usar.
Documentación
Entre otras cosas cosas intersantes que trae es más ejemplos de remoting,soporta seguridad por parte del cliente Flex (RemoteObject.SetCredentials),Manejo de excepciones mejorado etc.
En conclusión creo que los desarrolladores en .NET tenemos una buena opción para empezar a generar nuestras aplicaciones con WebORB a nivel corporativo.No olviden que lo más importante de una aplicación es la planeación y un buen análisis , esto nos lleva a tomar como herramienta una buena metodologÃa como puede ser UML, implementación de Patrones de diseño etc.
» Leer más, comentarios, etc...
ZingZang.org
Jornadas LanzaOS 2006
Noviembre 28th, 2006 - [Enlace local]
Hace pocos días volví de las jornadas LanzaOS 2006. Allí di una charla sobre TWiki, que creo que fue bastante bien acogida, al menos teniendo en cuenta las cantidades ingentes de cansancio que teníamos tanto los asistentes como un servidor. Las diapositivas de la charla están donde siempre, en mi repositorio de charlas. Los fuentes (LaTeX) están en su repositorio Darcs correspondiente.
Allí conocí a un montón de gente guay, incluyendo a un informático DJ (¡ese Rodri!), a Julio Duque (blogueando desde las charlas gracias a la inalámbrica) y a Carlos Parra, al que conocía de nombre pero no en persona. El año que viene Rodri prometió pinchar y hacer un taller de DJ, al que sin duda me apuntaré (es que siempre quise ser DJ de mayor).
Me lo pasé pipa en general, y las jornadas estuvieron muy bien organizadas. Puntos extra para los profesores (¿o sólo eran profesoras?) y alumnos que participaron. Si siguen esta progresión, las terceras van a ser increíbles ;-)
También pueden ver las fotos que hice (de otras charlas y de Lanzarote), en Flickr. A los que me conozcan pero lleven tiempo sin verme: ¡sí, hace un montón que me corté el pelo!
» Leer más, comentarios, etc...
mundoxbase.info
Xailer y los generadores de informes
Noviembre 28th, 2006 - [Enlace local]
Todo entorno de desarrollo enfocado a la creación de aplicaciones de gestión se basa en dos pilares fundamentales: Un buen sistema para la gestión de bases de datos y un generador de informes flexible y potente. Xailer, mientras el tratamiento de bases de datos lo tiene muy bien resuelto, ofreciéndonos múltiples opciones de conexión tanto a las tablas dbf tradicionales, como al servidor advantage o bases de datos Sql a través de ODBC – ADO y sus datacontrols, en lo que al generador de informes se refiere, encontramos sin duda su actual punto flaco. De momento tenemos que intentar salir del paso con un sistema arcaico heredado de los tiempos de fivewin y que tan apenas nos permite generar listados tabulares básicos o de lo contrario vernos obligados a tener que “currarnos a pelo� el informe, accediendo directamente a las clases especializadas en el pintado de impresora.
Afortunadamente existen herramientas de terceros que nos facilitan la siempre tediosa labor de tener que diseñar informes, estadÃsticas, modelos de facturas, etc..
En este artÃculo voy a dar un breve repaso a aquellos generadores de informes que conozco y espero que me deis vuestra opinión sobre ellos, vuestra experiencia de uso, o si conocéis algún otro que no aparezca aquà listado.
- PRTWIN: Bueno, realmente no se trata de un generador de informes, sino de una especie de “driver para ms-dosâ€? que nos permite imprimir los tÃpicos listados generados con clipper en impresoras Windows, bien sean usb, controladores pdf, etc…
Personalmente me ha salvado el cuello con algunos clientes que siguen utilizando mis programas ms-dos y un buen dÃa se encuentran con que no tienen impresoras en el mercado que sean capaces de imprimir una factura.
- EASY REPORT: Originalmente diseñado para fivewin, es un sistema simple y muy sencillo de manejar con el que se pueden hacer cosas realmente interesantes gracias a que nos aporta un diseñador visual semejante a un “IDE� pero enfocado a los informes.
Lo cierto es que no llego a entender por qué a fecha de hoy no hay una versión para Xailer. También es cierto que “el que la sigue la consigueâ€? y si es el caso, algún dÃa os contaré como he logrado “reciclarâ€? los informes generados con la versión personal que tenÃa funcionando en Fivewin y ahora funcionan en Xailer.
- CRYSTAL REPORT: Qué voy a contar de crystal report, salvo que personalmente no me gusta nada, además, parece ser la versión actual no llega a funcionar bien con Xailer. Esperemos que la llegada de los OCX nos haga cambiar de opinión a todos.
- RPV REPORT: Original sistema basado en unos ficheros de texto que utilizan un lenguaje de marcado similar al html, lo que permite utilizarlo desde cualquier lenguaje de programación que sea capaz de generar ficheros de texto. Su punto flaco está sin duda en que no cuenta con un diseñador visual de informes y la única ayuda con la que contamos para diseñarlos son unas guÃas en pantalla que nos van indicando la posición en la que nos encontramos en todo momento dentro de la hoja.
Entre sus caracterÃsticas tenemos la generación de gráficos de negocios (barras, lÃneas y tarta), la posibilidad de adjuntar imágenes al listado, la impresión de códigos de barras y la posibilidad de crear unas plantillas prediseñadas con el formato del informe de tal forma que sólo es necesario incorporar los datos propios del mismo y decirle que lo imprima con tal o cual plantilla.
RPV cuenta también con un sistema que nos permite habilitar uno de los ordenadores como servidor de impresión al que le llegan todos los informes y se encarga de imprimirlos. Esta opción me resultó muy útil, por ejemplo, con un cliente que tenÃa que imprimir códigos de barras en una impresora de etiquetas desde varios puestos con un sistema de captura de datos de balanzas escrito en ms-dos. La solución fue tan sencilla como instalar el servidor de impresión en un ordenador con Windows, instalar los drives de la impresora de etiquetas en ese ordenador y hacer que los programas en clipper “imprimieranâ€? el fichero de texto con los datos de la etiqueta en el directorio indicado dentro del servidor de impresión.
Las últimas versiones cuentan también con un original sistema que nos permite la impresión de datos en impresoras remotas a través del correo electrónico.
Aún asà creo que es una opción demasiado cara para lo que nos ofrece y sólo recomendable en casos extremos como el ejemplo anterior.
En su web tenéis una demo de 30 dÃas para ir probando
- FAST REPORT: Muy conocido dentro del mundillo delphi, hace unos dÃas que lo estoy probando y me están gustando los resultados. Cuenta con un editor visual muy completo en el que podemos incorporar desde códigos de barras a gráficas de negocios o efectos de degradado dentro del informe. La gestión de datos se hace a través de ADO y SQL lo cual hace mucho a favor de la velocidad de generación de los informes. Cuenta también con la posibilidad de informes a varias columnas, subinformes, tablas pivotantes, etc.. Vamos, un generador de informes como Dios manda.
Otro punto a destacar es la incorporación de un lenguaje “multi script� dentro del propio editor de informes que nos permite manejar prácticamente todo a través de script diseñados en Stript.c++, Script.Java, Script.Basic o Strip.Pascal, a elección del usuario. Gracias a estos script podemos controlar, por ejemplo, eventos que se generan antes/después de imprimir la página y hasta incluso generar cajas de diálogo para pedir determinados datos al usuario.
Para completar, podemos exportar los listados a html, pdf, Excel, rtf, etc, etc.. asà como dar opción al usuario para que se modifique él mismo el listado (siempre que sepa y nos atrevamos a proponérselo)
Para conectarnos desde Xailer podemos usar TOleAuto, que aunque me está costando un triunfo comunicarme con las clases incorporadas en FastReport, parece que empiezo a obtener buenos resultados.
No es muy caro (unos 300 € ) y creo que puede ser una opción a tener muy en cuenta.
En su web podéis descargar una demo con la única limitación de que sólo imprime 5 páginas y con una pequeña marca de agua en el lado superior.
- LIST&LABELS: No tengo el gusto de conocerlo personalmente, pero me han hablado muy bien de él. Por lo que he podido observar en su web, me parece carÃsimo (unos 1.000 € con el pack en castellano), aunque también es cierto que ofrece caracterÃsticas que no he visto en ningún otro software, como por ejemplo los códigos de barras 2D
Podéis descargar una demo de 30 dÃas desde su web, y como curiosidad, a la hora de indicar el lenguaje de desarrollo utilizado, aparece fivewin, por lo que supongo que no será muy difÃcil usarlo en Xailer.
Como podéis ver, son muchas y variadas las opciones que tenemos para poder mejorar la confección de informes desde Xailer hasta que éste cuente con su propio sistema de informes. Personalmente me gustarÃa que Xailer y EasyReport llegaran a algún tipo de distribución conjunta, similar a la que ya se realizó con Fivetech y el equipo de Xailer dedicara sus esfuerzos a mejorar la integración con otros productos como Cristal Report, Fast Report o List&Labels, porque de lo contrario, puede que cuando esté preparado el diseñador de informes definitivo todos tengamos “resuelta la papeletaâ€? por otros medios y ya no sea interés para nadie.
» Leer más, comentarios, etc...
Navegapolis
StatSVN: métricas sobre Subversion
Noviembre 28th, 2006 - [Enlace local]
Para los que uséis Subversion como repositorio para la gestión de la configuración, acaba de ver la luz una interesante herramienta que genera diferentes métricas, analizando los ficheros controlados por Subversion: Evolución de las líneas de código del proyecto, líneas de código por programador, reloj de actividad, actividad por autores, estadísticas por directorio, tamaño medio de fichero, etc.
» Leer más, comentarios, etc...
Ingenieria de Software / Software Engineering
Software Development Top 30 Mistakes
Noviembre 28th, 2006 - [Enlace local]
No entender las necesidades de los usuarios
Motivar al equipo de trabajo
No hacer pruebas suficientes
No usar una metodollogÃa
Pues de acuerdo al siguiente artÃculo estan dentro de los principales 30 errores en el desarrollo de software. Con El primerÃsimo lugar estoy totalmente de acuerdo.
