Angel "Java" Lopez

NET, Java, PHP y Desarrollo de Software

This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

.NET

ASP.NET

Windows Form

VB.NET

C#

Sitios

Blogs

January 2007 - Posts

AjSite: mi nuevo proyecto de código abierto

En estos días, aprovechando mi semana sabática, estuve trabajando en un nuevo proyecto de código abierto, que había iniciado el año pasado. Se basa en ideas que he implementado en mi sitio personal http://www.ajlopez.com usando PHP4, y que me fueron muy útiles en estos años. Al comienzo, necesitaba un sitio web que organizara mis enlaces de favoritos, notas, y toda información que genere o use. La solución que programé a principios de siglo en PHP, me resultó enormemente útil en mi desarrollo personal y profesional, aunque fue escrita con limitaciones y algunos vicios. Ahora, con más experiencia y requerimientos más claros, decidí implementar una solución similar en .NET.

El nuevo proyecto es un sitio ASP.NET, escrito en C# 2.0, que usa una base de datos MS SQL Server 200x. El código inicial fue generado con mi proyecto favorito de generación de código AjGenesis. AjSite como proyecto es interesante, porque sirve como banco de prueba de mis nuevas plantillas .NET 2.0. Me entusiasma mucho el poder de la generación de código, y AjGenesis es una base estupenda (para mí) para explorar todas las posibilidades de armar software usando software.

AjSite maneja

- Items
- Categorías
- Tags

Un item puede ser un documento (que se sube al sitio), un enlace externo, una página a definir en el mismo sitio, o un item compuesto de otros items.

Un item puede ser asociado de cero, una o varias categorías. Lo mismo puede tener tags asociados. Mientras que los tags son libres, las categorías se organizan en un árbol, una jerarquía de categorías.

Acá esta mi primera página del proyecto (sí, soy programador, no diseñador web... :-)

No downloads todavía.... pero al final de la semana sabática debo tener algo publicado.... keep tuned!

Angel "Java" Lopez
http://www.ajlopez.com/

Posted Tuesday, January 30, 2007 11:48 PM by lopez | 1 comment(s)

Clases de programadores, de la A a la Z

Hola gente!

Pueden ver una clasificación de los distintos tipos de programadores que podemos ser, en el "post"

The A to Z of Programmer Predilections

Ese y otros ensayos, pueden descargarse en formato PDF desde 

 
Pueden ver en este documento, varios artículos que atacan, por ejemplo, a varias disciplinas de las metodologías ágiles, a la dirección de proyectos, y demás. Es interesante leerlo, porque da para discutir muchas posturas, a favor y en contra de varias corrientes actuales en el desarrollo de software.
 
Los que me conocen, saben que soy algo escéptico del diseño emergente. Pues ahí en ese documento, encontrarán alguna discusión sobre el tema, tal vez algo dura, en contra de la eficacia de semejante diseño. Es interesante para tomar como punto de partida de una discusión. Igual, mi resistencia al concepto creo que pasa por otros puntos, mas que por lo que ahí se trata.
 
Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com/
(yes!! it's my sabbatical week!!!....
http://ajlopez.wordpress.com/2007/01/27/sabbatical-week/ )

Posted Tuesday, January 30, 2007 12:17 AM by lopez | with no comments

Que nunca les pase

Excelente video, que me ha pasado el bueno de Juan Pablo García

http://www.youtube.com/watch?v=5bPMwAHdJCg

Posted Sunday, January 28, 2007 9:36 PM by lopez | 1 comment(s)

Semana Sabática

Hola gente!

En pocas horas, comienzo una semana sabática, sin visitas ni trabajos a clientes ni horarios de cursos ni backlogs en grupo. Tengo que dedicarme, en ese tiempo que abarca hasta el lunes 5 de febrero inclusive, a ordenar algún código que estoy escribiendo, ejemplos, estudios, libros, enlaces e ideas. Creo que es importante regularmente, tomarse alguna semana de este tipo, para aprovechar la sinergia de la concentración y el tiempo dedicado.

Espero publicar acá los resultados informáticos de esta semana, las locuras mías no informáticas, quedarán en

http://ajlopez.zoomblog.com (blog personal en español)
http://ajlopez.wordpress.com (blog técnico en inglés)

y quizás reavive a mis abandonados intentos de English as a Second Language

http://ajlopezen.zoomblog.com

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com/

Posted Friday, January 26, 2007 8:35 PM by lopez | with no comments

Evangelizando .NET

(Una humorada adelantada ya en alguna cena con Microsoft.... ahora por
escrito...  ).
Escenario: la cancha de River, Argentina.
El estadio, repleto, a lleno.
La gente, agolpada, estática, arrobada.
En el medio del campo, un escenario. En el fondo, un "video-wall", con la
imagen de Nestor Portillo, desde Acapulco, primer plano de su cara, con
habano en la boca, copa de torrontés en la mano, sonriendo, se notan algunas
mujeres atras de el, en ropas menores....
Altas banderas, con el logo de .NET, colgando de cada esquina del estadio...
Zepelin volando, dejando caer copias completas del VS.NET.... Una musica, de
marcha, de fondo....
Mientras, sobre el escenario, el bueno de Sebastian Lancestremere, con
túnica blanca, apoyado sobre el atril, una onda entre Oral Roberts, Pat
Robertson, y JFK, con el pelo al viento, arengando a la multitud:
- "Ahora, con .NET vivimos! Hemos visto la luz! Somos renacidos!!!"
Y la multitud contestando:
- "Aleluya!!"
Sebas: "Y para demostrarlo, aca con nosotros, los MVPs, gente iluminada,
apóstoles de la verdad, santos varones y mujeres, que han traido LA
palabra!"
En el fondo, todos los MVPs, tambien con túnicas blancas, coreando un
gospel, cada uno una copia de la documentacion .NET, en la mano....
Se adelanta Leandro Olivestro, y declama:
- "Yo, pecador, antes usaba una Palm... ay de mí! ... apenas una agenda....
ahora, con la Pocket PC, y el Compact Framework, hago lo que quiero!! Loado
sea Redmond!"
Multitud, enardecida: "Loado!!!! Osanna a .NET!!!"
Daniel Seara, se adelanta:
- "Yo antes hacia Set Nothing en cada variable, aun cuando no era
necesario... ay de mi!... iba camino a la perdición.... Pero el Senior me
acompaña, el Garbage Collector es el santo recolector.... el perdonador de
pecados... ahora, mi alma está en el cielo!!"
Y hasta Daniel Laco:
- "Cuantas veces codifiqué un recálculo de un formulario ASP!! Ay de mí!!
Cuantas veces me encontré sumido en la oscuridad.... el javascript del
diablo tocaba a mi puerta... mi corazón estaba endurecido... no conocía la
paz.... ahora, el santo PostBack es mi vida"
Y el bueno de Marcenaro, también.
- "Ay de mi pasado!! Cuantas veces use la macro de Fox.... ay!!! Tan lejos
de todo lo bueno! Tan cerca de la maldad!... Ahora, con reflection, tengo
todo... "
Y llorando, emocionado, vuelve al grupo, a seguir con el canto...
Se adelante Gaston Quirque:
- "Y yo, pecador, el peor de todos.... mantenia abierta la conexión, o usaba
recordset desconectados.... entidades del maligno... Ahora no!!! Vi el
camino! Santo Dataset! El espíritu santo encarnado en XML!!!"
Habla Diego Gonzalez, el apóstol de MBI:
- "Nada de eso se compara con lo mío, amigos... Yo estaba descaminado...
Hasta usaba Lotus Notes, mi servidor SMTP estaba en Linux... ay de mí!
perdido casi para siempre! Algun círculo del Dante se me reservaba!!... Pero
ahora no más!... Patrones, arquitectura, application blocks.... serializo mi
alma en XML, la logueo en Message Queue, la congelo, descongelo y envío....
es una acción del MBI... como expresarles la total alegría de eso... Aleluya
hermanos!!.... Bienaventurado los que usan DataSet, de ellos seran los
datos.... Bienaventurados los que escriben XML, porque el cielo les
pertenece.... Bienaventurados los que manejan threads, sin usar el Apartment
Model, nada les será negado... Bienaventurados los que desarrollan Web
Services, se comunican con el Altísimo.. .  Bienaventurados los que
desarrollan aplicaciones de consola, saludaran al Senior con caracteres...
Bienaventurados los que usan Context para armar transacciones sin usar COM+,
el cielo sera su límite.... "
Y asi seguian los MVPs, la gente arrobada, descontrolada, en éxtasis....
Y en el fondo, otro MVP, con cierto aire mefistofélico.... un tal Angel
"Java" Lopez, que murmura para sí:
- "Jeje... tantas cosas nuevas, y sin embargo viejas..... si .NET es el
nuevo evangelio.... Java es el Antiguo Testamento!!"...

:-)


Nos leemos!
Angel "Java" Lopez
http://www.ajlopez.com/

Posted Saturday, January 20, 2007 3:28 PM by lopez | 1 comment(s)

Más programadores matando dragón

El "post" más visito de mi sitio, ha sido hasta ahora

Programadores matando dragón

Hay muchos muy buenos artículos de ese estilo en la web, en el blog de Sebastián Bassi encuentro la referencia a

Rebotación: Programadores matando dragón

Que lo disfruten! Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com/

Posted Monday, January 15, 2007 7:39 AM by lopez | with no comments

Computer Go: El gran problema de AI

Desde hace algunos años, estoy interesado en algunas ramas de lo que se llama Inteligencia Artificial. Convengamos que el término es algo ampuloso, y refleja el entusiasmo de fines de los años 50, cuando en una reunión de especialista se acuñó el término. La Artificial Intelligence o AI ha pasado por varias etapas y viscisitudes, ha habido de todo, desde triunfos y fracasos, hasta ramas nuevas (agentes, redes neuronales, aprendizaje automático) que han ido apareciendo. Realmente es un tema fascinante, pero tal vez demasiado amplio.

Pueden ver algunos enlaces desordenados que colecciono en

http://www.ajlopez.com/ia/

He mantenido, de alguna manera, el interés en una rama: su aplicación a los juegos. Pueden visitar el excelente sitio del grupo GAMES de la Universidad de Alberta (Canadá):

http://www.cs.ualberta.ca/~games/

para encontrar mayor información, estupenda. Si Uds. investigan un poco, encontrarán que a lo largo de todos estos años, hay un juego que ha resistido las distintas aproximaciones que se han intentado para dominarlo. Pueden encontrar más información sobre el juego en el sitio de la Asociación Argentina de Go:

http://www.go.org.ar/

en especial, el ya clásico artículo del bueno de Franklin Bassarsky:

Por qué Aprender a jugar al Go
http://www.go.org.ar/actividades/porque.html

Mientras que Deep Blue el siglo pasado derrotó a Kasparov, en ajedrez, el mejor programa de go del planeta apenas si puede enfrentar a un verdadero experto en el juego. Para conocer más sobre la situación actual, visitar el interminable y subyugante

http://gobase.org/

En los últimos años, ha surgido el wiki

http://senseis.xmp.net/

donde encontrarán múltiples temas tratados, por ejemplo

http://senseis.xmp.net/?ComputerGoProgramming
http://senseis.xmp.net/?ComputerGoAlgorithms

Un clásico es el algoritmo de Benson (solo como botón de muestra de cómo apareció hace años, y luego han ido apareciendo otras ideas para explicar y acercar el Go a la AI):

http://senseis.xmp.net/?BensonsAlgorithm

También como botón de muestra de la cantidad de "papers" que mueve el tema, ver

http://erikvanderwerf.tengen.nl/publications.html

LA lista de correo sobre el tema es:

computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Se imaginaran entonces, que no puede faltar.... el AjGo. Sí, estoy pasando a .NET algunas ideas. La principal es concentrarme primero en planes, que traten de cumplir con 4 objetivos básicos:

- Aumentar el territorio propio
- Disminuir el territorio enemigo
- Asegurar la vida de las piedras propias
- Capturar piedras enemigas

Hace unos años investigué distintas formas de calcular la influencia y territorio, basado en conceptos que todos en computer go tratan alguna vez: "iluminación", "campos de fuerza".... En este nuevo intento, he visto que es más interesante simplemente separar en grupos, usando para visualizar el resultado distintos colores. Un ejemplo (una posición algo ridícula para un juego real, pero interesante para mí) es:

Podría explicar un poco más en detalle el coloreo, pero basta decir que los azules indican cercanía a piedra negra, los rojos cercanía a piedra blanca, amarillo cercanía a ambos colores, verde libre de cercanía. Los cuatro objetivos básicos los puedo expresar en deltas en esos coloreos. Me parece que el concepto de grupo coloreado, y su aumento o disminución, es un camino interesante a explorar. Por ejemplo, rodear a un grupo enemigo es, en principio, asimilable a "disminuir sus verdes", los verdes que estan en contacto con ese grupo.

Supongo que alguien ya lo habrá seguido, pero de alguna forma, con esto estoy aprendiendo sobre la dificultad del problema. Tengo que analizar la táctica a seguir para cumplir con cada plan sugerido. Igualmente, algo de algoritmo de sisho generalizado está siendo incorporado. Falta la hercúlea tarea de resolver:

- Tácticas de corte
- Tácticas de conexión
- Tácticas de vida y muerte

Espero poder postear algo interesante cuando tenga algo más armado, código incluído.

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com/

Posted Monday, January 15, 2007 1:01 AM by lopez | 4 comment(s)

Software es más que software libre o código abierto

Hace ya unos años, escribí en "animus jocundi" alguna crítica a lo cerrado que me parece la actitud de algunos defensores del software libre en Argentina mi pais:

http://lists.ourproject.org/pipermail/solar-general/2004-July/009146.html

que me atrevo a transcribir aquí

Estar inscripto en Solar
es una pesadilla
saqué una cuenta en gmail
y se me llenó la casilla

Desde que estoy en la lista
la pentium IV no me sirve
no ejecuto ni un programa
a ver si el BIOS no es libre

Miren hoy lo que me entero
despues de tantos anios
porque programo con Windows
soy parte de un gran rebanio

Para mí, el soft es software
sea libre o propietario
los que son programadores
saben bien de lo que hablo

Estoy perdido por siempre
todo por una pavada
hice un cat en la consola
de un programita de Java

Para participar en Solar
hay que ser hombre versado
saber de go, de ajedrez
de chitas y de venados

El otro día sin querer
perdí mi alma sin más
navegando por la web
instalé un plugin de Flash

Solar está abierto a todos
suenen trompetas y cornos
los que usen propietario
vayan marchando al horno

Hace casi veinte anios
hice en Xenix un login
podré seguir en la lista?
o será éste mi fin?

En la lista, ni por asomo
hay actitudes de cana
eso sí, Nanux, da el nombre
o entreganos a tu hermana

En el altar de Solar
Stallman santo patrono
Murdock, de Icaza, Rapisardi
que se vayan al demonio

No se te ocurra abrir
un explorer fulero
que a la salida te esperan
Saravia y los chalchaleros

"Aniquilar el enemigo"
en la lista se leía
que curiosa coincidencia
lo mismo Hitler decía

Bienvenidos sean todos
a Solar, que tengan suerte
pero aprendan la consigna
acá es: Ututo o muerte

Esto del software libre
siempre tiene alguna pega
hasta hay licencias duales
como Florencia de la Vega

No se lavan los cerebros
no es secta, para nada
esto es el Templo Solar
siganme hasta Guyana

No es "libre o dunga dunga"
como en el viejo chistecito
pero si usas propietario
dunga dunga un ratito

No instales Tomcat ni Java
no caigas en esa trampa
si usas proyecto Mono
el núcleo duro te engrampa

No se me enojen los cumpas
esta es sólo mi opinión
sigamos armando la lista
de todos aprendo un montón

Programadores del mundo uníos
es el manifiesto nuevo
libre, propietario o mixto
creen valor, pongan huevo

Hasta aquí llega mi canto
tengo que ponerme cota
los dejo con esta estrofa
ya estoy medio hinchapelotas

:-) :-)

Mucho de ese mensaje sólo se entiende en el contexto de esa lista, o entendiendo el movimiento del software libre argentino. Me encanta el software libre (así como el código abierto, como producto y como movimiento). Admiro a Stallman, una persona que hace. Pero no comparto todas sus posiciones, y veo con desaliento, cómo algun grupo levanta el software como una bandera, en contra de otro software. Una cosa es software: otra es el conocimiento o los derechos humanos. Quisiera aclarar alguna posición mía, hacía un tiempo que quería encarar el tema.

Creo que el desarrollo de software tiene una gran influencia en las actividades humanas. Gracias al software, hemos podido mejorar procesos y diseminar información, hasta conocimiento. Y quien estudie la historia del software, verá lo importante que ha sido el compartir el código. Pero también sabrá apreciar lo importante que ha sido el desarrollo desde las empresas. Y que lo importante es la idea, más que el código. Prácticamente todo el software de código abierto (diferente del concepto de software libre, por más que algunos quieran ponerlo en el mismo lugar), tuvo su origen en ideas originadas en software que no es abierto. Desde las bases de datos relacionales, hasta el propio Unix. Desde las interfaces gráficas hasta lenguajes de programación.

La creación del software es tan importante como hermosa, por lo menos para mí. El dividir el software en parcelas, y hasta adosarle a alguna parte el calificativo de "perverso", me temo que no me convence. De ahí la anteúltima estrofa de arriba.

Sigamos creando. Eso es lo importante.

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com/

 

Posted Sunday, January 14, 2007 7:39 PM by lopez | 4 comment(s)

El blog de Raymond Chen y la API de Windows

Raymond Chen trabaja en Microsoft, desde 1992. Está en el equipo que programa Windows, y pueden leer su blog, para enterarse de la historia de algunas "features". Recuerdan cuando programábamos contra la API de Windows? Viejos "buenos" tiempos en:

http://blogs.msdn.com/oldnewthing/

Los que asisten a mis charlas, conocen que desde hace tiempo, afirmo que .NET reemplazará al Sistema Operativo. De una u otra forma, la API de Windows desaparecerá bajo la cantidad de servicios brindados por el framework. Y una vez que esto suceda, Microsoft podrá implementar el framework sobre otros sistemas operativos, y nuestro código seguirá corriendo. Claro, es futurología, pero me gustaría llamarles la atención sobre esa tendencia, que veremos hasta donde llega. Encuentro en estos días, un viejo post de Joel Spolsky, que trata temas similares:

How Microsoft lost the API War

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com/

Posted Thursday, January 04, 2007 9:28 AM by lopez | with no comments

Filed under:

Software Agents

Hola gente!

El tema de software agents me tiene ocupado desde hace unos años: un tema amplísimo (y por lo tanto, algo difuso), pero muy interesante.

Me gustaría en este breve "post" compartir enlaces con Uds:

Agent Software

Mobile Agents

Software Agent Group en el MIT

Algunos enlaces desordenados sobre el tema en

http://del.icio.us/ajlopez/agents

http://www.ajlopez.net/Busqueda.php?Filtro=agent

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com/

 

Posted Wednesday, January 03, 2007 8:57 PM by lopez | with no comments