Noticias Weblogs Foros Wiki Código
Sponsors:

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

Anunciarse aquí

PlanetaCódigo en inglés

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

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

csharp:
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]

read this in english

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"
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>
Lo podríamos hacer así:
<beans xmlns="http://www.springframework.org/schema/beans"
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>
Un pequeño cambio que podría hacer nuestros XMLs mas compactos, aunque no se si mas legibles.

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:
<?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 :D </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 :D , 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:


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 configurable
- Ya, ¿pero dónde?
- Ya le encontrarás un hueco...
- Con tantas opciones ¿no será un poco difícil de usar?
- ...
De 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... :)

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.jpg

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í:

Texto plano
PHP:
  1. $conexion = mysql_connect(’servidor’, ‘usuario’, ‘password’) or die(‘Error al intertar conectar : ‘ . mysql_error());
  2.  
  3. mysql_select_db(‘dbmibase’) or die(‘Error al seleccionar DB.’);
  4.  
  5. $sql = ‘SELECT campo1, campo2 FROM tabla’;
  6. $resultado = mysql_query($sql) or die(‘Error en la consulta: ‘ . mysql_error());
  7.  
  8. while ($registro = mysql_fetch_array($resultado, MYSQL_ASSOC)) {
  9.     foreach ($registro as $valor) {
  10.         echo $valor;
  11.     }
  12. }
  13.  
  14. mysql_free_result($resultado);
  15. mysql_close($conexion);

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:

Texto plano
PHP:
  1. // Incluimos el nucleo de ezSQL
  2. include_once “ez_sql_core.php”;
  3. // Incluimos el componente para trabajar con MySQL
  4. include_once “ez_sql_mysql.php”;
  5.  
  6. // Ahora creamos e instanciamos un nuevo objeto para conectarnos a MySQL
  7. $db = new ezSQL_mysql(‘usuario’,‘password’,‘dbmibase’,’servidor’);
  8.  
  9. // Realizamos una seleccion
  10. $resultado = $db->get_results(“SELECT campo1, campo2 FROM tabla”);
  11.  
  12. // Mostramos el resultado de la consulta
  13. foreach ( $resultado as $fila )
  14. {
  15.     // Accedemos a los campos como un objeto
  16.     echo $fila->campo1;
  17.     echo $fila->campo2;
  18. }
  19.  
  20. // Si solo queremos seleccionar una fila
  21. $fila = $db->get_row(“SELECT campo1, campo2 FROM tabla WHERE campo1=’valor’”);
  22. echo $fila->campo1;
  23. echo $fila->campo2;
  24.  
  25. // Si queremos obtener un solo campo o variable
  26. $variable = $db->get_var(“SELECT campo2 FROM tabla WHERE campo1=123456″);
  27. echo $variable;
  28.  
  29. // Si queremos insertar, eliminar y actualizar
  30. $db->query(“INSERT INTO tabla (campo1, campo2) VALUES (’valor1′,’valor2′)”);
  31. $db->query(“UPDATE tabla SET campo2 = ‘valorxxx’ WHERE campo1=’valor’”);
  32. $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.

Top Vulnerabilities

Pueden encontrar más información en los siguientes documentos:

» Leer más, comentarios, etc...

Navegapolis

Confianza: la prueba del algodón para trabajar con patrones ágiles

Noviembre 30th, 2006 - [Enlace local]

confianzaCreo 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. 

Blogalaxia Tags: agilidad confianza desarrollo+ágil

» 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]

logo¡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
&amp;key=b0861d51d5da18dc68b4caf97ce4b43b&amp;sb=0
&amp;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.

  1. 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");
    }
  2. 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.
  3. 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.

ServiciosPestañ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?)

TestDriveTestDrive 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ódigoDescargar 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

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

Descargar códigoImplementación

En cuanto a la parte de problemas (TroubleShooting) y documentación esta impecable y muy sencilla de usar.

Descargar códigoDocumentació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.

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.

Fredy 2006

» Leer más, comentarios, etc...

Navegapolis

StatSVN: métricas sobre Subversion

Noviembre 28th, 2006 - [Enlace local]

statsvnPara 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.


Blogalaxia Tags: StatSVN métricas software

» Leer más, comentarios, etc...

Ingenieria de Software / Software Engineering

Software Development Top 30 Mistakes

Noviembre 28th, 2006 - [Enlace local]

Les parece conocido lo siguiente



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.

» Leer más, comentarios, etc...