Disclaimer: This is a personal web page. Contents written here do not represent the position of my employer.

Friday, October 21, 2005

 

¿OpenOffice deja de ser libre?


Según el artículo (ya algo antiguo) de JavaHispano "Controversia por el uso de Java en OpenOffice.org 2.0", la libertad de OpenOffice puede quedar comprometida a partir de esta nueva versión, pues aparecen más componentes que dependen sobre la máquina virtual de Java.


Otras preguntas que se hacen en el hilo de comentarios del artículo:


¿Es tan importante que el software libre no dependa de un componente no libre, al igual que opina Richard Stallman? (En mi opinión, .)


Actualización: Según un nuevo artículo en BarraPunto, parece que las nuevas funcionalidades Java de OpenOffice compilan perfectamente con GCJ (el GNU ClassPath, la alternativa libre), así que de momento no hay que preocuparse.

Labels: ,


Tuesday, October 18, 2005

 

¿¿Tú te metes dentro de los ordenadores??

Bueno, esa es la típica frase que todos los que nos dedicamos a la informática, de un modo u otro, nos han formulado alguna vez o bien a menudo. Por supuesto que no se refieren a ser un "manitas" de las placas base, sino a si somos ese tipo de gente que no tiene otra cosa que hacer que aprovechar vulnerabilidades del software para conseguir acceso a equipos ajenos de manera remota.

Muchos resumirían esto en ser un "hacker". Otros corregirían a éstos diciendo que sólo son hackers si son intrusos que no aprovechan sus conocimientos para hacer ningún mal, sino solamente por satisfacción personal o curiosidad. Aquí entraría el término "cracker", que serviría para definir a los "hackers malos", que se meterían en los bancos o en la base de datos de su colegio para modificar sus notas.

Sin embargo, tras leer mucho en internet, parece que lo anterior no ha sido más que una acepción particular que han dado los medios de comunicación a estos términos. En realidad, un "hacker" es aquella persona amante de la tecnología que está continuamente aprendiendo y desarrollando sus habilidades con temas informáticos. El término cracker, pues, serviría para designar a dos tipos diferentes de personas: a) los que desarrollan desprotecciones para los programas de software privativo, de manera que se puedan eliminar las limitaciones de los programas shareware o versiones de evaluación; b) los que se entrometen en sistemas ajenos, ya sea con buenas intenciones o con malas.

Porque, sinceramente, aquellos que se meten en sistemas ajenos, ya sólo por el mero hecho de haberlo hecho, no creo que se les pueda tildar de santos o incluso siquiera sabios. Después de leer este magnífico comentario de BarraPunto, seguro que os queda mucho más claro. Y a pesar de que hay una respuesta a este comentario que también ha adquirido muchos puntos de moderación, esa respuesta no me quita la idea de que cualquier acto de intrusión no obedece necesariamente a una habilidad especial o admirable en estos menesteres. ¿Cuántas de estas personas serán realmente descubridoras de los agujeros de seguridad que utilizan para comprometer la seguridad de los servidores a los que acceden?

Labels: ,


Wednesday, October 12, 2005

 

Primer mensaje SPAM en mi bitácora

Puesto que ya he recibido mi primer mensaje de SPAM en la bitácora (el cual he borrado ya), me he decidido a activar la verificación de "palabra" en la introducción de comentarios. Esta bitácora no es leída por casi nadie, y casi nadie escribe comentarios, y si alguien lo hiciera seguramente tendría que tener un nivel técnico medianamente elevado para hacerlo; por lo tanto, no considero que esta verificación suponga barrera alguna. Quien más y quien menos que tenga cierta experiencia en la red, sabe lo que significa una verificación de este tipo, en qué consiste y el motivo de su existencia.

Actualización: ¡Pues vaya! Me considero a mí mismo un desarrollador web preocupado por términos como accesibilidad (a11y), y sin embargo no me había dado cuenta de que esta práctica de validación hace inaccesibles a los navegadores que no muestren imágenes, como bien indican en un artículo de uno de los blogs de Monologue. Habrá que ir pensando en soluciones mejores...

Actualización 24-MAY-2007: Cojonudo este nuevo sistema para combatir el spam, basado en el reconocimiento de dos palabras, una para verificar que eres humano y otra para ayudar en la digitalización de libros.

También hay otra técnica interesante y no intrusiva, pero que no da retorno de la inversión a la digitalización de libros :)

Actualización 17-JUL-2007: ¡Hablando de SPAM! Nunca en mi vida había recibido uno tan original como el de hoy:

Hello!!!

How are you doing? My name is Vera. I am 26 years old. Live in
Russia, city Zelenodolsk. I am cheerful woman, and like to do many things
as sport, camping, go to the cinema, theatre etc. In a word I like to do
all what like all people. I work in shop.
My dream this travel abroad. I know the english language well enough.
I began to study english language approximately one year ago.
I wish tell to you history which have pushed me write to
you. 7 months ago I have got acquainted with the man from other country by
name Alfonso. During this time we had good relations. We have understood
that our relations become serious and we have decided to meet in his country.
I wrote the application for reception the visa.
I waited reception of the visa approximately half of year. All time I kept in
touch with Alfonso through the internet and often called to each other. I
and Alfonso waited reception of the visa to our meeting. I have received
the invitation from the ambassador for reception of the visa.
My director has given me long-term holiday from work and I have gone to
Moscow to receive the visa. I informed good news to Alfonso, but he has
answered, that does not want our meeting.
He played with me. He has informed that has the wife with
two children and at all has no plans to meet me. I was not ready to such
turn of events. I could not think what even after one year of
acquaintance he can so unscrupulously act with me. Now I am in Moscow
trip to Moscow and reception of visa. I do not want that all was gone
for nothing and will be glad if my visa will be useful to our meeting.
I could arrive already through 4-5 days, but a problem in that that
now I have no man which would like my arrival. Probable it will silly
sound but if you will be interested in a meeting with the good woman I
shall like to meet you sometime soon! As Alfonso was dishonest with me I
have decided to find the man which is interested to meet the woman from
Russia. I do not know your ideas about my letter, but it would be fine
if we could meet and have some weeks or months together. On my trip I want to
receive rest from my work and a life in Russia. Also the basic purpose
for the future it is search good men for serious attitudes which go to a
marriage. I have no children, but I want to have children in the future.
I am the mature woman and ready to creation of family with good man. I
do not know what you really search in the future but if we could meet I
shall be happy to discuss with you more about our meeting. What are you
going to do this time? It would be fine if we could meet, do
friendship or more than simply friendship. I shall be happy if you also
have a free time and we could meet soon. I do not know your interests,
but anyhow write to me back and I shall tell to you more about myself.
Write to me all that you want. Maybe we have similar plans and it will
be interesting to us together.

You can write all that you want. Ask any questions which interest you.
Write to me back and I shall tell more about myself and send more my
photos.
Write me please on my regular e-mail xxxxxx@xxx.xxx
Have a good day, Vera


¿O acaso esto se llama SCAM tal como reza esta web?

Actualización 29-JUL-2007: Otra interesante iniciativa para reaprovechar la inteligencia humana:


Enlace al vídeo

Labels: ,


Sunday, October 02, 2005

 

Inconvenientes de ASP.NET

Es extraño que a una persona que le guste .NET le atraiga también el software libre, y viceversa. Es lo que les ocurre a las que personas que vemos futuro en Mono. Pero, si además le sumas a esto que, a una persona como yo, no le termina de gustar ASP.NET (la cual es la tecnología por excelencia dentro de .NET para desarrollar aplicaciones web), pues para de contar.

Y es que a ASP.NET le veo inconvenientes técnicos que no se pueden solventar de un día para otro, pues son problemas que influyen de raíz en la concepción de esta tecnología. Ésta aporta un modo de desarrollo por el cual le permite a un desarrollador olvidarse un poco de los intríngulis de la especificación HTML. Se basa en una serie de componentes a los cuales el desarrollador les adjudica características y comportamientos a sus eventos, de manera que parezca que se está desarrollando una aplicación de escritorio, pues luego cada control genera su salida HTML+CSS+JavaScript a la hora de enviarse del servidor web al cliente. Esto hace que tengamos poco control sobre las tecnologías que hay por encima de HTML, las cuales, en mi opinión, son de obligado conocimiento para cualquier desarrollador web.

Es más, no sólo oculta estas capas al programador sino que además le provoca malos hábitos. Da bastante grima ver cómo la mayoría de ejemplos existentes en páginas de documentación sobre ASP.NET (como MSDN) no separan el estilo del contenido, usando directivas de presentación (CSS) en los atributos de un control ASP.NET. Si actuamos así, luego será mucho más complicado, por poner un ejemplo, hacer que la aplicación web tenga estilos intercambiables (de manera que con cambiar los ficheros CSS se tenga un aspecto absolutamente distinto y la aplicación siga funcionando correctamente). Por el contrario, podemos usar CSS en los controles ya que podemos adjudicarles el valor de la propiedad "class" con el atributo "CssClass", pero esto en realidad no acaba de encajar bien con este modelo de desarrollo pues, al final, los especialistas en CSS, no sólo necesitarán los nombres de las clases, sino también los nombres de las etiquetas HTML usadas: algo que, en principio, está oculto debido al modelo de desarrollo intrínseco de ASP.NET.

¿Y cuál es el inconveniente de que los controles ASP.NET generen un código HTML que en principio el desarrollador no tiene por qué conocer? Pues que el desarrollador desconoce la calidad de este código generado. No sabe si tendrá JavaScript con errores, si el código cumplirá a rajatabla la especificación HTML, o incluso si cumplirá unas normas básicas de accesibilidad. Un buen ejemplo de ello es el control DataGrid de ASP.NET, que en sus primeras versiones renderizaba las cabeceras de una tabla como elementos de celda TD en lugar de TH, lo que es fundamental para aplicar un control de estilo CSS decente. Según la guía de "Cómo conseguir que un sitio web de ASP.NET sea accesible", ya existe un parche para este inconveniente, pero yo no lo he encontrado en ningún Service Pack ni he encontrado la versión en español de este mínimo HotFix.

Otro de los problemas que veo en ASP.NET tiene que ver con la extracción de datos desde la capa de presentación al modelo de datos. Si se desea un tratamiento avanzado de un dato extraído de una iteración de un componente asignado con el DataBind, deberemos utilizar funciones y código del back-end en las páginas ASPX (usando el método Eval del DataBinder), es decir, que estaremos mezclando lógica con presentación.

Es más, ASP.NET no tiene compatibilidad con XHTML y, lo que es peor, presupone el funcionamiento de JavaScript en la parte del cliente. Un usuario que tenga un navegador sin JavaScript o con JavaScript desactivado no podrá utilizar una aplicación web ASP.NET que tenga una cierta complejidad.

Aunque, todo sea dicho, y es que al parecer la versión 2.0 de ASP.NET (que viene con Visual Studio 2005), la cual aún no he tenido la oportunidad de probar, va a respetar mucho los estándares de la W3C. Sin embargo, en mi opinión, podrán arreglar pequeños problemas o pulir muy bien esta tecnología, pero al final, el concepto inicial en el que se basa, será siempre erróneo.

Un desarrollador web debe conocer bien las especificaciones XHTML, debe desenvolverse bien con JavaScript y usar CSS siempre, no de modo opcional. Por eso yo creo que el mejor modo de utilizar separación de capas de abstracción sin perder el control de la salida XHTML, es utilizar tecnologías propias de XML para la transformación de datos: XSLT. Si quieres más detalles sobre mi modelo de desarrollo web no dudes en leer mi artículo Evolución de mi arquitectura de desarrollo web (desde ASP hasta Mono, pasando por PHP y Java).

Actualización 04-NOV-2007: Hoy al visitar la Wikipedia me he encontrado con cosas que reafirman las quejas que expongo en este artículo. Cito:

ASP.NET 2.0 produces markup that passes W3C validation, but it is debatable as to whether this increases accessibility; one of the benefits of a semantic XHTML page + CSS representation. Several controls, such as the Login controls and the Wizard control, use HTML tables for layout by default. Microsoft has now gone some way to solve this problem by releasing the ASP.NET 2.0 CSS Control Adapters, a free add-on that produces compliant accessible XHTML+CSS markup. However, some controls still rely on JavaScript.

Labels: , , , ,


Saturday, October 01, 2005

 

Artículos interesantes

Es interesante descubrir a veces cómo existen interesantes artículos, aunque antiguos, en internet, que te pueden enseñar muchas cosas. Hoy le ha tocado a How Microsoft Lost the API War.

En principio, parece un título esperanzador para toda la gente que amamos el software libre, pues en resumen viene a decirnos que Microsoft está de capa caída en el mundo del desarrollo. En mi opinión, Joel está algo equivocado en esta argumentación, sobre todo teniendo en cuenta lo que ha hecho Microsoft con .NET (publicar sus especificaciones como un estándar ECMA) y las consecuencias que ello ha traído (que se estén creando compiladores CLI para los más variopintos lenguajes, de los cuales sólo se aprovecha la sintaxis y se usa la API de Microsoft). Por el contrario, esto no significa que Microsoft gane un monopolio con su API, porque como todos sabemos, Mono la está implementando con código abierto y libre. Por tanto, yo podría sacar una conclusión de todo esto, y no es que Microsoft haya perdido la guerra de las APIs, sino que la ha ganado o la va a ganar, pero a costa de facilitarles las cosas al software libre, de manera que la consecuencia de ello no tiene porqué estar ligada a un aumento de la cuota de uso de productos Microsoft en el ámbito del desarrollo de software.

Lo que me ha parecido más interesante de descubrir en este artículo ha sido el tema de las "dos caras" de Microsoft, las cuales se contraponen entre sí y luchan por su dominio. Es aberrante pensar que una de esas caras consistía en salvaguardar a toda costa la compatibilidad hacia atrás de los programas, desarrollando hacks y workarounds en los sistemas operativos para que los programas que funcionaban en versiones anteriores y no en las actuales (por culpa de un mal uso de la API del sistema operativo) pudieran seguir funcionando. Afortunadamente, la otra cara de Microsoft que se opone a estas prácticas, y que aboga por la renovación de las APIs a costa de la compatibilidad hacia atrás (para así obtener un mejor resultado) le está ganando terreno a la primera.

También me ha gustado la forma que ha tenido Joel de analizar las ventajas de los lenguajes sin aritmética de punteros (como C# o Java), y creo que es muy acertado usar el siguiente símil para comparar dos lenguajes como C# y C++: la diferencia entre éstos es análoga a la diferencia que existe entre los coches de cambio automático y los de cambio manual; es raro el caso en el que una buena transmisión automática resulte menos adecuada que la transmisión manual.

Por último, sólo indicar que es interesante el modo con el que analiza la historia de la evolución de los lenguajes de desarrollo de Microsoft: antes se disponía de Visual Basic y C++. El primero, sin aritmética de punteros (administración automática de la memoria) pero con una orientación a objetos pobre; el segundo, con una orientación a objetos robusta, pero poco productivo por el hecho de la complejidad que supone la aritmética de punteros (administración manual de memoria). De alguna manera se puede decir, entonces, que C#, el lenguaje resultado de la evolución natural de los lenguajes de Microsoft, no es sólo una mezcla entre C++ y Java, sino también representa una evolución de Visual Basic en cuanto a propósitos se refiere (nunca en cuanto a sintaxis, la cual, por cierto, me parece mucho más limpia que la caótica de VB/VB.NET).

Labels: , , ,


This page is powered by Blogger. Isn't yours?

Categories

RSS of the category Gnome
RSS of the category Mono
RSS of the category C#
RSS of the category Programming
RSS of the category Mozilla
RSS of the category Web Development
RSS of the category Security
RSS of the category Open Source
RSS of the category Engineering
RSS of the category Misc
RSS of the category Politics

Contact with me:
aaragonesNOSPAMes@gnNOSPAMome.org

Archive
My Photo
Name:
Location: Hong Kong, Hong Kong
Follow me on Twitter