07 marzo 2007

Enterprise Java Beans

En este post voy a dejar un poco de lado a C#, db4o, Linux entre otras cosas para invitarlos a una clase magistral de EJB dictada por el profesor Rubén Fernández Iriat, Presidente del Consejo Profesional en Ciencias Informáticas de la República de Argentina.

El video creo que lo dice todo, no tengo nada más que agregar. Que lo disfruten!!!


04 marzo 2007

Barra Google en Iceweasel

Muchos se preguntaran que es eso de Iceweasel. Bueno, es el nombre de nuestro querido Firefox en Debian Etch. El cambio de nombre para los que no se enteraron fue prodcuto de unos problemas de licencias, en fin, ese no es el tema de este post :)

El tema es que este fin de semana he instalado Debian Etch en mi PC y realmente he quedado fascinado con el avance que ha tenido la distro en comparación con su antecesora: Sarge.

Etch viene cargada de nuevas características como por ejemplo la gran optimización de recursos que hace, el PC literalmente vuela juaujaju y eso siempre es muy grato y se agradece xD Por lo que se ve de momento en la testing se puede predecir que cuando Etch sea estable será una muy buena distro, tipico de Debian en todo caso.

Bueno, entremos en materia...

Al comenzar a configurar el pc con los típicos programas de uso cotidiano, llegó el momento de instalar la barra de google en Iceweasel (sí, vayan acostumbrandose al nombrecito aquel :P ) y resulta que no había caso, no quería instalarse ya que para google el Iceweasel no existe ujaujajuju entonces existe una pequeña trampita para engañar al google.

En una pestaña entramos a la configuración del Iceweasel tipeando en la barra de direcciones about:config, luego en Filtro escriben general.useragent.extra.firefox y modifican el nombre con el cual "se presenta" el navegador ante el Señor Google, osea modifican Iceweasel por Firefox luego reinician el Iceweasel e instalan la barra de google sin problema algunos.


Salu2

28 febrero 2007

Bug en IE 6 sp2 y IE 7

El viernes pasado se me ocurrió probar el sistema que estoy desarrollando (C# - ASP.NET - DB4o) en IE7 y poco grata fue la sorpresa al encontrarme con un problema el los gridview, especificamente en los commandfields que tenía implementado. El problema que se generaba era que me arrojaba el error de acceso a la base de datos, indicandome que no tenia permisos de lectura-escritura. Lo más curioso es que cuando almacenaba datos en la BD la operación se realizaba sin problema alguno, por lo cual deduje que no era problema de permisos.

Realizando un par de pruebas, se me ocurrió cambiar el tipo del boton de los commandfield, los cambie de tipo Image a tipo Link y para mi sorpresa funcionaron perfecto!!! no lo podía creer. Comencé a buscar info en el tio google y encontré un post en un foro donde comentaban que es un bug del IE6 con sp2 y del IE7 ya que al hacer clic en el commandfield tipo Image se genera un doble postback. La solución artesanal de momento es agregar el siguiente código en los eventos de los commandfield:

if (Request["x"] == null || Request["y"] == null)
{
Response.End();
}

Lo he probado y funciona perfecto.

La otra solución es la que me comentó mi amigo Gisbert, he aqui la solución en sus palabras:

...Victor te recomiendo usar una columna template y ahi hagas magia jajaja, de la siguiente manera:

En la columna template agregas un ImageButton asi ya tienes tu boton con imagen y en el commandName guardas algun codigo con el que identificas al registro con el que deseas hacer algo, haciendo referencia a la propiedad del objeto que sacas del yap.

Espero que este pequeño aporte sea de su utilidad para que así no pierdan valiosas horas de programación en tratar de solucionar un bug de kill bill :)

Gracias Gisbert por tu valioso aporte.


Salu2!!!

PD: Más información y códigos aqui.

27 febrero 2007

La creatividad del chileno...

Muchos de ustedes recordarán cuando nos visitó La Pequeña Gigante en nuestro país, específicamente en Santiago. Como vivimos en el sur, somos postergados en cierta medida de todos los eventos culturales debido a nuestra posición geográfica. Pensando en ello es que una familia de la ciudad de Llanquihue fabricó su propia Pequeña Gigante para un concurso de carros alegóricos y evidentemente ganó.

Tanto revuelo provocó la creación que salieron en los diarios y en la televisión, ganándose el respeto del público por la perfecta creación.

El fin de semana recien pasado, mi amigo Paulo me invitó a la ciudad de Fresia para asistir al día del cordero y la frutilla :) Además de asado de cordero y muchos productos fabricados con frutilla (mermelada, kuchen, postres, etc), la reina de todos los productos fue una borgoña producida de manera industrial jajajjaj sólo vean la siguiente foto para que vean desde donde la servian:


si no me equivoco esa pequeña ponchera es de 500 litros, el que sepa por favor que dé más detalles :)

Pero si duda la reina de la jornada fue ella...

La Pequeña Gigante made in Llanquihue paseando ese domingo por Fresia...


Gracias Paulo a ti y a tú familia por el recibimiento, siempre es muy grato estar en tú casa.

23 febrero 2007

¿Qué es la globalización?

¿Que es la Globalizacion?
El mejor ejemplo lo tenemos en el caso de la princesa Diana:
Una princesa BRITANICA con un novio EGIPCIO que usa un celular SUECO que choca en un tunel FRANCES en un auto ALEMAN con motor HOLANDES manejado por un conductor BELGA que estaba rascado con whisky ESCOCES.

A ellos les seguia de cerca un paparazzi ITALIANO en una motocicleta JAPONESA que tomaba fotos con una camara TAIWANESA para una revista ESPAÑOLA.

Ella fue intervenida por un medico RUSO y un asistente FILIPINO que utilizaron medicinas BRASILEÑAS...

Este articulo fue traducido del INGLES por un VENEZOLANO. Lo envio a un vago MEXICANO. Y ahora lo esta leyendo un CHILENO que no tiene nada que hacer...


¿Que tal? ¿Esta claro qué es GLOBALIZACION?


PD: este chiste fue enviado por un amigo ECUATORIANO, gracias Gisbert xD

21 febrero 2007

Delphi for PHP

Después de muchísimo tiempo sin publicar nada en mi blog producto de la falta de tiempo y de inspiración, comenzaré el año con una buena nueva para los desarrolladores de PHP.

Según leo en barrapunto hoy, en la página de CodeGear se ha anunciado el lanzamiento de un nuevo IDE para desarrollar en PHP. Este IDE viene cargado de novedades, ya que cuenta con un editor, una debuger, un diseñador, entre otras cosas. La interfaz es muy similar al IDE de .NET y según leo en los comentarios de barrapunto, este puede ser un punto a favor para este nuevo IDE ya que existen muy pocos IDE's similares para desarrollar en PHP, por algo dicen que .NET es tan popular, pero... ¿popular por un IDE? cada uno tendrá sus propias opiniones al respecto.

Pero no todo son buenas noticias, lamentablemente esta aplicación es de pago. El valor de las licencias son las siguientes:

- Nuevo usuario: US$ 299
- Version académica: US$ 99

Aca les dejo un SS del IDE.


Enlaces relacionados:

- Noticia original
- Delphi for PHP

12 diciembre 2006

dVP 2007

Es un orgullo y un gran honor haber sido designado como dVP (db4o Most Valued Professionals) de DB4o. La noticia me la comunicó Christof Wittig, Presidente y CEO de DB4o el día 22 de noviembre pero recién el día de ayer se hizo oficial para la comunidad.


Lo más importante de todo esto es que soy el único chileno en todo el listado de dVPs, eso me enorgullese bastante y creo que indica que estamos haciendo las cosas bien. Es una gran responsabilidad el ser dVP así que esperemos lograr afrontar de la mejor manera posible la designación.


Para ver el listado de dVP, haz clic aqui.

30 noviembre 2006

Mono Migration Analyzer

Si estas desarrollando una aplicación en .NET y luego quieres migrarla a Linux usando la plataforma Mono, este dato es múy útil.

Esta herramienta permite verificar si tús ensamblados hechos en .NET son soportados por la plataforma Mono o no. Es muy útil en el caso que desees usar ensamblados de terceros en tús aplicaciones y de antemano verificas si en Mono funcionarán bien o no.

En la página de MoMA (Mono Migration Analyzer) puedes bajar el programa y luego puedes verificar tus ensamblados.

27 noviembre 2006

Sun regala dvd con Solaris10 y Sun Studio 11

Aún recuerdo cuando un amigo me envía un mail diciéndome que Sun estaba enviando cds con el NetBeans 4.1 totalmente gratis. Como soy un poco incrédulo, llene los datos del formulario y pedí mi cd. A las 2 semanas tenia mi cd de NetBeans original en mi poder.


Ya ha pasado un tiempo de aquel episodio y ahora Sun arremete nuevamente. Esta vez, la oferta consiste en dvds con el Solaris 10 (para plataforma SPARC como x86) y Sun Studio 11, el cual ofrece compiladores de C,C++ y Fortran, herramientas de perfomance y librerias para desarrollar bajo Solaris.


Haz clic aqui para pedir tus dvds.


Yo ya pedí los míos, tú qué estás esperando???

14 noviembre 2006

Se libera la versión 6 de Db4o

Acabo de llegar a mi casa y me encuentro con la grata sorpresa de que se ha liberado la versión 6 de db4o. Me alegra mucho ver como esta creciendo el desarrollo de db4o y se está convirtiendo en un producto maduro, utilizado ya por Intel, Boeing, Bosch, Seagate, entre otras grandes empresas mundiales, lo cual sólo viene a afirmar que ya es un producto confiable y sólido para desarrollar aplicaciones de tiempo real, sí, leíste muy bien, aplicaciones de tiempo real. ¿Cúantos motores de bases de datos relacionales pueden decir lo mismo?

Los invito para que se animen a usar db4o, a usar una solución real y concreta para la presistencia de objetos, para que usar un mapeador como hibernate si puedes usar un producto de persistencia real de objetos, sencillo de usar y muy potente en vez de perder tiempo creando mapas para relacionar 2 mundos tan distintos como lo son el mundo de los objetos y el mundo de los conjuntos (bases relacionales).

Pasen por aquí a ver la noticia completa y en español del lanzamiento de la versión 6 de db4o.


Larga vida a db4o y al open source, adios!!!

08 octubre 2006

Las 20 respuestas típicas de los programadores...

Acabo de encontrame con este artículo y realmente que tiene muchísima razón. Les juró que cada programador más de alguna vez en su vida ha utilizado alguna de las 20 frases que aparecen en el listado, el q diga lo contrario es un mentiroso.

He aquí el listado:

20. “Pues es raro…”
19. “Nunca había pasado antes.”
18. “Pues ayer funcionaba…”
17. “¿Cómo es posible?”
16. “Tiene que ser un problema de tu hardware.”
15. “¿Qué hiciste mal para lograr que fallara?”
14. “Algo debe de estar mal en tus datos.”
13. “¡Si no he tocado ese módulo en meses!”
12. “Debes de estar usando una versión anterior.”
11. “Es sólo una desafortunada coincidencia.”
10. “¡Es que no lo puedo probar todo!”
9. “ESTO, no puede ser la causa de ESO.”
8. “Funciona, pero no lo he probado.”
7. “¡Alguien debe de haber cambiado mi código!”
6. “¿Has comprobado que no haya algún virus en tu sistema?”
5. “Ya se que no funciona, ¿pero te gusta?”
4. “No puedes utilizar esa versión en tu sistema”
3. “¿Por qué quieres hacer eso?”
2. “¿Y tú dónde estabas cuando se colgó el programa?”

Y la respuesta número uno de los programadores con programas que no funcionan es:

1. “¡EN MI MÁQUINA SI FUNCIONA!”

17 agosto 2006

Problema con páginas aspx en mono

Después de haber realizado la configuración del módulo mod_mono en mi apache para asi poder dar soporte a mis páginas aspx y probar los ejemplos que trae el XSP, todo funcionaba perfecto, asi que me dispuse a crear una pequeña aplicación en el Visual Studio 2003 yy luego portarla a linux. Lo primero que ocurrió fue lo obvio, trate de ejecutar la página y no funcionó, asi que se me ocurrió la idea de abrir el proyecto generado con el Visual Studio 2003 a través del MonoDevelop para si poder compilarlo, lo compilé y perfecto, funcionó sin ningún problema.

Después de estar un poco alejado del tema, ayer trate de ejecutar nuevamente mi página y no funcionó, lo volvi a compilar con el MonoDevelop y nada, siempre el mismo error.

El error que me marcaba era con el Codebehind de mi página aspx, busque info en la web y varios usuarios tenían el mismo problema pero nadie colocaba la solución, hasta que al fin hoy dí con ella.

Resulta que el Codebehind lo utiliza el Visual Studio en modo de diseño pero no es una etiqueta oficial y válida de ASP.NET, por eso el mono me tiraba el error.

Lo único que hay que hacer es cambiar la palabra Codebehind por src en el inicio de todas nuestras páginas aspx generadas con el visual studio y así no tendremos más problemas.

La línea original creada al momento de crear la página aspx en el Visual Studio es:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="monto.WebForm1" %>

Para que funcione en mono sin problemas debe quedar asi:

<%@ Page language="c#" src="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="monto.WebForm1" %>


Espero que a alguien le sea útil este pequeño aporte.


Salu2

31 julio 2006

Un IDE para la web 2.0

Se ha lanzado un nuevo IDE para desarrollar páginas Web con carcaterísticas 2.0

Entre las características de Aptana, podemos mencionar que es open source, que se encuentra disponible para Linux, Mac y Window$

Además, posee un asistente de código, soporte para los lenguajes Javascript, HTML y CSS, referencia Javascript entre otros.

El IDE se ve muy completo y a simple vista promete bastante.

Si deseas más información, haz clic aqui.

30 julio 2006

Conversor de DVD9 a DVD5 desde GNOME

DVD95 es una aplicación GNOME con la que convertirás un DVD9 a un DVD5 de 4,7GB, es decir reducirás el tamaña de un DVD comercial a aproximadamente la mitad sin perder un ápice de calidad.



Todo lo que necesitas para hacerlo es dvd95. Es una solución todo en uno ya que en realidad, integra una versión de vamps y dvdauthor. Su Interfaz es agradable y de fácil manejo, y el proceso de conversión es muy rápido, mucho más que otros de sus rivales.

El método utilizado incluye el cálculo de un ratio de compresión adaptable, según la necesidad y escenas de la película. El DVD resultante será una imagen ISO lista para su grabación, con la posibilidad de visualizar el resultado a través de Xine, VLC o mplayer. Por último, soporta la integración de menús, múltiples canales de audio y subtítulos.

DVD95 lo puedes descargar aqui.

24 julio 2006

Soporte para paginas ASP.NET en Apache2

En este artículo expondré los pasos que seguí para instalar mono en Ubuntu Dapper con el respectivo soporte para el servidor web Apache2 para servir páginas ASP.NET

Nota: Evidentemente la instalación de todos los programas aca mencionados se realizó con el synaptic (la GUI del clásico apt-get)

Primeramente instale el paquete mono con todas sus dependencias, luego instale el paquete monodevelop con sus respectivas dependencias. Hasta aquí ya tengo instalado correctamente el entorno de programación de mono.

Ahora viene lo que realmente me interesaba, el tener soporte nativo para mis páginas ASP.NET bajo Apache2, para ello, debemos instalar mono-xsp, libapache2-mod-mono y todas las dependencias. También recomiendo instalar el archivo asp.net-examples los cuales son un conjunto de archivos de ASP.NET que nos servirán para montar nuestro módulo mod_mono y comprobar su correcto funcionamiento (En ubuntu dapper estos archivos se encuentran ubicado en /usr/share/asp.net-demos)

Ahora vamos a configurar el apache2 para que tenga soporte nativo a nuestras páginas de ASP.NET, para ello editamos el archivo /etc/apache2/apache2.conf y agregamos lo siguiente:

Include /etc/apache2/mod_mono.conf
Alias /test "/usr/share/asp.net-demos"
AddMonoApplications default "/test:/usr/share/asp.net-demos"

(Location /test)
SetHandler mono
(/Location)

OJO: CAMBIAR LOS PARÉNTESIS POR SIGNOS '<' '>' (SIN COMILLAS) PARA SU CORRECTO FUNCIONAMIENTO

la linea Include /etc/apache2/mod_mono.conf es la encargada de cargar el módulo mod_mono en nuestro apache2, luego creamos un enlace al directorio en el cual se encuentran los ejemplos de asp.net que descargamos en su momento y por último, creo un directorio en el cual tendré soporte nativo para mis aplicaciones ASP.NET

Para verificar que realmente tenemos soporte para páginas aspx abro el firefox y escribo: http://localhost/test/ y se debería abrir una página muy similar a esta:



Ahí están los ejemplos que instalamos en su momento, los podemos ejecutar y verán que funcionan perfecto. Ahora si quieren agregar un directorio aparte para servir sus páginas aspx, por ej. /home/viktor/www (mi caso particular) sólo deben agregar las lineas respectivas al archivo /etc/apache2/apache2.conf el cual quedaría de la siguiente manera:

Include /etc/apache2/mod_mono.conf
Alias /test "/usr/share/asp.net-demos"
Alias /www "/home/viktor/www"
AddMonoApplications default "/test:/usr/share/asp.net-demos"
AddMonoApplications default "/www:/home/viktor/www"

(Location /test)
SetHandler mono
(/Location)

(Location /www)
SetHandler mono
(/Location)

OJO: CAMBIAR LOS PARÉNTESIS POR SIGNOS '<' '>' (SIN COMILLAS) PARA SU CORRECTO FUNCIONAMIENTO


Espero que este tip le sea util en su momento.


Salu2 xD

21 julio 2006

Publicado libro sobre Mono

Hoy me he encontrado con la grata sorpresa que se ha lanzado un libro sobre Mono bajo licencia Creative Commons. Lo acabo de ver y realmente esta bastante bien el material que se ha generado. Ahora hay que poner en práctica los ejemplos y aprender a desarrollar en .NET

El libro lo pueden visitar aqui y lo pueden descargar aqui.

Saludos.

20 julio 2006

Los 12 mandamiento$ de window$

Leyendo como de co$tumbre la$ página$ de noticia$ informática$ me encuentro con la $orpre$a de que Micro$oft ha publicado lo$ 12 mandamiento$ para window$ lo$ cuale$ $erán aplicable$ de$de el lanzamiento de Window$ Vi$ta.

Aqui vienen los nuevo$ mandamiento$

Parte I : Asegurar elección para fabricantes y usuarios
1. Se asegura, tanto a fabricantes como a usuarios, la instalación de cualquier software.
2. Los fabricantes podrán agregar íconos y menús que sean encontrados con facilidad por los usuarios.
3. Se facilitará, tanto a fabricantes como a usuarios, el designar otros programas como aplicaciones por defecto.
4. Los fabricantes tendrán la posibilidad de eliminar programas clave del sistema operativo, como Internet Explorer o Windows Media Player.
5. Microsoft no tomará represalias contra ningún fabricante que promueva software de sus competidores.

Parte II : Oportunidades para Desarrolladores
6. Se documentará públicamente las interfaces para programas aplicaciones (API) de Windows.
7. Los servicios de Windows Live se establecerán de forma separada al sistema operativo.
8. Microsoft no prohibirá ni dificultará el acceso a sitio Web alguno.
9. Microsoft no firmará contratos que exijan usar en exclusiva sus productos.

Parte III : Interoperabilidad para los usuarios
10. La empresa documentará y hará públicos en términos comercialmente razonables sus protocolos de comunicaciones.
11. Microsoft licenciará todas sus patentes, salvo las que diferencian el aspecto de sus productos.
12. Microsoft se compromete a adherir a los estándares fijados por la industria.


$i quiere$ má$ detalle$ de la noticia, haz clic aqui!!!

07 julio 2006

Publicado Mono 1.1.16

Hoy se ha publicado un nuevo release de este maravilloso framework que nos permite desarrollar aplicaciones bajo .NET

Entre las características sobresalientes de esta nueva versión cabe destacar:

- mejora en el soporte de ASP.NET
- mayor soporte para las windows.forms y system.drawing
- optimizaciones varias, entre otros.

Si quieren más detalles de este nuevo lanzamiento hagan clic aquí!!!

03 julio 2006

¿Cómo grabar tu escritorio en un video?

De seguro alguna vez han necesitado crear un video en el cual se grabe todo lo que han hecho ustedes en la pantalla para luego ser usado en alguna presentación o a modo de tutorial. Para window$ existen muchas pero... ¿cómo anda la cosa en Linux? Pues en linux anda todo bien por el momento y les puedo comentar que existen las siguientes aplicaciones:

- wink
- vnc2swf
- xvidcap


son muy faciles de usar y permiten realizar la captura en .avi o .swf y lo mejor de todo es que en el caso de wink podemos editar posteriormente nuestro .swf y agregar botones o texto en la animación..

Al fin tenemos aplicaciones de este nivel para poder crear tutoriales interactivos usando sólo software libre.

db4o, la gran promesa...

Comenzaré a relatar esta historia de acuerdo a los hechos reales que acaecieron durante este último mes en el cual he estado redactando mi anteproyecto de tesis y por ende he estado un poco alejado de mi blog pero ahora retomo todo y comparto con ustedes este mes de investigación, en el cual me he llevado gratas sorpresas.

Mi primer problema despues de haber definido mi tema para la tesis fue el seleccionar una metodología formal de desarrollo de software, tenía varias en mente pero no sabía cual sería la mejor para mi caso (desarrollo web) así que después de escuchar varias sugerencias el camino pareció ser más claro y finalmente me decidí por Rational Unified Process (RUP).

Inicialmente mi proyecto estaba pensado para ser desarrollado bajo PHP5 - MySQL pero al seleccionar RUP apareció un gran problema, ¿cómo hago persistir los objetos en el tiempo? esa pregunta no me la hecho sólo yo sino que gran parte de los desarrollaores que programan bajo el concepto de objetos pero que usan una base de datos relacional. Pero, ¿dónde está el problema? el problema es de conceptos, básicamente al tratarse de "mundos distintos", entiéndase bien este concepto ya que si analizamos un poco más el caso nos daremos cuenta que estamos trabajando con diferentes formas de pensar, esto es, el mundo de las bases de datos relacionales básicamente es la aplicación de las matemáticas a través de las teorías de conjuntos las cuales nos llevan a manejar la información en este caso en particular, y por su contraparte, el mundo de los objetos es un mundo abstracto, por ende, son paradigmas diferentes.

El problema que genera todo esto es que los objetos no se pueden almacenar en una base de datos relacional así como así, primero que nada se debe hacer un mapeo de los objetos para que puedan ser almacenados en una BD relacional, aunque muchos digan que esa es la mejor solución para mi no la es y estoy de acuerdo con los detractores de la idea ya que al ser 2 mundos incompatibles desde un comienzo, jamás serán compatibles por ser "mundos distintos". Por ejemplo, las clases soportan relaciones de muchos a muchos (N:N), en cambio este tipo de relaciones no están soportadas en un modelo entidad relación, la solución es crear una tabla intermedia para poder permitir las relaciones muchos a muchos.

Si buscan info en la web se darán cuenta que la solución al problema de impedancia de objetos creado al usar POO y modelo ER será usar un framework de persistencia de objetos como hibernate por ej. logrando resultados aceptables, pero si analizamos más a fondo el problema nos daremos cuenta que perdemos performance en nuestra aplicación, específicamente con los tiempos de respuesta y a mi parecer usar tecnologías diferentes lleva consigo el riesgo implícito de que en cualquier momento nuestra aplicación no cumpla con las espectativas deseadas.

Es así que despues de analizar multiples alternativas me encontré en mi camino con db4o (Database for objects) el cual es una base de datos para objetos y que puede ser utilizado por Java, .NET y Mono bajo licencia GPL.

La gran gracia que tiene db4o es que me permite hacer persistir mis objetos en el tiempo de forma transparente y sin tener que usar ningun framework de persistencia entre medio para almacenarlo en una base de datos relacional sino que directamente en una base de datos de objetos, lo cual le da una gran performance a mi aplicación al ser esta 100% orientada a objetos y por ende transparente.

Si ingresan al sitio oficial de db40 en español, podrán acceder a info más detallada de este maravilloso producto que promete dar una revolución en el mundo de las base de datos. Lo que más me llamó la atención es que se ha usado en proyectos de misión crítica y los resultados han sido fantásticos así que me animé y cambie por completo la estructura de mi proyecto y ahora será desarrollado con C# - db4o bajo mono, esperemos que todo resulte bien, estaré dando comentarios a medida que avance con mi programación.

y tú que esperas para animarte a probar db4o???