late | today I'd like to talk about OpenOffice.org (OO.o for short) - from 3 angles: |
MJesus_ | a español :) |
late | hoy hablaremos sobre OpenOffice (OO.o para abreviar) desde tres puntos de vista |
late | (poco a poco ;)) |
@late | .- introducción |
@late | .- desarrollo |
@late | ¿future stuff? perdón por mi ingles :P |
@alejandro | - futuras caracterÃÂsticas |
@late | O.o is a big source base, estimates vary but I'm sticking to 8million lines |
@late | OO.o tiene 8 millones de lineas aproximadamente |
@alejandro | la gente se pregunta normalmente porque se trata de un proyecto tan grande |
@alejandro | es grande (lento de comenzar) y tcuenta con una gran cantidad de tecnologias como el toolkit: VCL, un VFS (UCB), etc, etc |
@alejandro | muchas de estas caracteristicas se deben a razones pragmaticas, por ejemplo, historicas, es un proyecto viejo de mas de 25 anhos |
@alejandro | por ejemplo, complejidad en el código, compatibilidad hacia atrás o interoperabilidad por ejemplo, haciendo que un documento pueda ser visto de la misma forma que un MS Word. |
@alejandro | y por supuesto - tambien esta la gran cantidad de caracteristicas acumuladas sobre los años y mantenidas |
@late | (gracias Alejandro yo me pierdo :P) |
@alejandro | asàque - si, OOo es aparamente una gran bestia, pero esta bien modularizada. |
@alejandro | esto tiene algunos beneficios y algunas desventajas como puede ser el rendimiento |
@alejandro | pero la ventaja es que idealmente tu podrias necesitar cargar más codigo que el que vas a necesitar |
@alejandro | de este modo OOo seria mas rapido - pero eso viene más tarde |
@alejandro | Una de las mas interesantes cosas (para mi y Novell) sobre OOo es que es capaz de ser una completa suite ofimatica en el campo del software libre |
@alejandro | Proporciona frente a MS Office un buen oponente por su dinero - verdaderamente para mi solo existen dos suites ofimaticas: MS office y OOo |
@alejandro | Tambien es interesante (aunque no propondria a la gente el uso de una suite no libre) que podamos competir con MS Office en Win32 |
@alejandro | Verdaderamente - OOo se comporta mejor en Win32 que en Linux por varias razones |
@alejandro | Asàque ese es el motivo de OO estrategicamente importante? Y porque piensas que puedas hacer una gran diferencia con este proyecto? |
@alejandro | - MS gana 30% de sus ingresos con Office [ segun The Economist] |
@alejandro | - La comunidad existente es pequeña - es facil de hacer un impacto involucrandose. |
@alejandro | - tenemos varios millones de usuarios : muchos en win32. |
@alejandro | este ultimo punto - la base de usuarios es critico: 'cualquiera' sabe que el Software Libre es maravilloso no? |
@alejandro | pero de hecho - ese conocimiento es realmente aislado, podria ser mas de gente que persigue la Libertad y como de importante se trata el Software Libre - pero (al menos en el este) mucha gente normal lo piensa. |
@alejandro | OOo en este caso - es una cabeza del software libre, y sÃÂ, en el escritorio win32, muy util, facil de instalar software libre. |
@alejandro | y asàsentandome en el tren, en la cafeteria, en una reunion de gente no tecnica, ellos han oido de OOo, aunque no conozcan GNU/Linux. |
@alejandro | por lo tanto, mejorar OOo un 0.1% - el efecto en la red sobre muchos millones de personas es grande, |
@alejandro | particularmente - la imagen y reputacion del software libre en el mundo crece. |
@alejandro | asàque hay un numero de cosas interesantes en OOo 2.0 |
@alejandro | muchas de ellas ya se conocen desde que fueron portadas a OOo 1.1.x y de este modo fueron una realidad cuando se hizo la release. |
@alejandro | Otras interesantes nuevas cosas: |
@alejandro | Mejorado el uso de la aplicacion - aunque todavia quedan muchas cosas pendientes de mejorar |
@alejandro | + hay una nueva interfaz de usuario para impress completamente nueva - que hacia falta y es ahora mas facil de crear transparencias y de usar |
@alejandro | + muchas otras correciones: nuevo bloqueo de toolbar, tambien conocida como 'brocha de copia de formato' |
@alejandro | si tu eres un desarrollador como yo, probablemente encontraras casi que nunca usas OOo por ti mismo, asi que quizas te sea poco familiar |
@alejandro | otra cosa importante es el componente 'base' - este mueve una carga de funcionalidad en un unico lugar (database) |
@alejandro | y proporciona una shell unificada, junto con un fichero de base de datos familiar para aquellos que han usado 'Access' |
@alejandro | otras cosas que podrias identificar es que una gran cantidad de codigo antiguo ha sido eliminado |
@alejandro | los filtros de StarOffice 2.0 a 5.0 fueron quitados del código base y se utilizaron plugins 'binfilters' y ahora no hace falta mas cargarlos, a no ser que se necesiten |
@alejandro | otras caracteristicas: mejoras en la interoperabilidad de listas, instaladores nativos (RPM, MSI, etc), soporte XForms y por supuesto el formato OpenDocument |
@alejandro | ahora como el proyecto funciona: todo el código OOo tiene derechos de autor unificados (que es Sun Microsystems) |
@alejandro | ellos siguen el proposito de 'asignacion de copyright conjunto' (IANAL) en la que tu continuas teniendo tus derechos de autro pero tambien los tiene Sun |
@alejandro | de #qc: |
@alejandro | prueba =GAME('StarWars') in calc2 |
@alejandro | deacuerdo, prueba en writer StartWriterTeam<F3> |
@alejandro | hay algunas personas divertidas con las que jugar :-) |
@alejandro | asi que a pesar de la asignacion de derechos de autor - el codigo es GPL - por eso permite plugins binarios propietarios contra la API publica - pero tambien se pueden usar otras licencias no compatibles con la GPL |
@alejandro | Sun contribuye en gran aprte de su trabajo al desarrollo - quizas el 80% de los recursos de programadores - aunque con el tiempo mas compañias e individuales se han implicado: Novell, Redhat, Intel, Google, Etc, |
@alejandro | este balance esta cambiando el grado de contribucion |
@alejandro | Sun todavia tiene muchas tareas que son poco familiares a nuevos desarrolladores, asi que es mejor preguntarles en el IRC. #go-oo #openoffice.org irc.freenode.net cuando tengais problemas |
@alejandro | (solo desarrolladores para estos canales, por favor!) |
@alejandro | Una de las mejores cosas que ha ocurrido en OOo recientemente no es relacionado con software, |
@alejandro | sino con el cambio de tiempos de release; |
@alejandro | esta innovacion es por supuesto familiar a seguidores del kernel Linux, GNOME, etc. |
@alejandro | sin embargo - OOo ha trabajado previamente con ciclos de release de 18 meses, que tiene a matar las ganas sobre el proyecto y asegurar que tu nueva caracteristica es eliminada por el ciclo de vida de un estudiante antes de ser vista a los usuarios |
@alejandro | asi que cambiando a 3/6 meses es un ciclo de release mucho mejor |
@alejandro | asi que estoy contento de que se haga release de caracteristicias mas a menudo, ayudando a los proveedores de servicios, usuarios y desarrolladores |
@alejandro | Otra de las importantes caracteristicas es el formato 'OpenDocument' |
@alejandro | esto es por supuesto bueno en algun sentido, sin embargo hay peligro para el Software Libre aqui |
@alejandro | el peligro es este: Nosotros producimos codigo, preferiblemente mucho, asi que entendemos el valor de la libertad del software, politicos por otra parte no producen codigo; |
@alejandro | pero sin embargo realizan documentacion |
@alejandro | asi que podemos entender y comunicar esto: Mi informacion no me pertenece, porque necesitamos una patente para leer mi propia tesis, argumentos de este estilo |
@alejandro | asi que esto es todo correo y bueno, el problema es que OpenStandards no es OpenSource (diculpa por la alteracion ;-] |
@alejandro | asi que para la gente entusiasmada con OpenDocument y con su apertura en este momento - yo pediria calma - coge algunos asesinos de sueldo y trabaja duro para explicar porque el software libre es mas importante que un estandar en un largo alcance. |
@alejandro | aun asi, todo esto no importa al usuario final |
@alejandro | ahora para cerrar el tema de mi corazon - rendimiento |
@alejandro | porque OOo es lento al arrancar? |
@alejandro | o otro caso: "gnumeric empieza antes que OOo muestra la pantalla de splash" |
@alejandro | asi que hay tres partes en el rendimiento. |
@alejandro | arranque caliente + arranque frio + carga documento |
@alejandro | arranque caliente. |
@alejandro | asi que de una tercera a la mitad (dependiendo de como rapida sea tu maquina , mas rapida la mitad) el arranque pesado es el enlazado |
@alejandro | si quieres entender porque es lento lee: |
@alejandro | Ulrich Drepper's paper: http://people.redhat.com/drepper/dsohowto.pdf |
@alejandro | el problema raiz aqui es solo del disenho - ELF especifica una funcion llamada interposicion |
@alejandro | esta caracteristica es reutilizada para implementar LD_PRELOAD |
@alejandro | sin embargo es mas compleja: por ejemplo, considera C++ [ y muchos de los problemas de diseño de C++ tristemente ] |
@alejandro | ejemplo, si lanzo una excepcion - nunca puedes estar seguro de que se captura |
@alejandro | quizas eres el unico usuario de esta excepcion en el mundo entero, |
@alejandro | tienes que dar un tipo de informacion de salida para describir la excepcion |
@alejandro | _ZTI12FooException.. |
@alejandro | por supuesto es posible que la excepcion sea captura por otra libreria dinamica (DSO) que es conocida en tiempo de compilacion, pero entonces quizas nunca se lanza - el capturador debe emitir la informacion de excepcion |
@alejandro | bien no? |
@alejandro | asi que el problema viene cuando la excepcion es capturada - para ver si la capturamos una 'FooException' no a 'BaaException' comparamos el tipo de valor del puntero al tipo de informacion |
@alejandro | asi que mientras tenemos dos simbolos _ZTillFooException - es necesario para ambos resolver el mismo valor |
@alejandro | esto se consigue con la interposicion |
@alejandro | esencialmente el primer simbolo en la lista de busqueda 'gana' y todas las otras referencias a ese se ocultan |
@alejandro | asi que para una excepcion esta bien - solo buscas las tablas de simbolo para que todas las librerias encuentren la version autorizada y la usen -> sin problema |
@alejandro | el problema es que hay muchas, muchas instancias de esto - muchos miles de simbolos |
@alejandro | todo de lo que se ha buscado se ha hecho realmente lento - enlazado requiere 2.5 segundos en tiempo real de CPU (de 5) en mi 2.6Ghz 512 cache desktop |
@alejandro | esto es principalmente debido a los efectos de cache - buscando 150DSOs hace que OOo por un numero de simbolos ocupe tu cache L2 virtualmente por cada libreria y cada simbolo |
@alejandro | asi que lo peor es que prelink no puede usarse - desde que se menciono, OOo esta componentizando en librerias compartidas, dinamicamente cargadas cuando se necesitan y prelink no maneja tener que abrir las librerias. |
@alejandro | asi que he estado trabajando en una caracteristica llamada - BDirect que implementa un algoritmo de enlazado mas eficiente |
@alejandro | esto quita 75% del tiempo de enlazado - dando una gran velocidad - con mas por venir |
@alejandro | asi que el problema de arranque sera ajustado de forma gradual [ se estan trabajando en varias optimizaciones ] |
@alejandro | porque el arranque es importante? no es solo un punto a favor de los desarrolladores, sino en tiempo de respuesta |
@alejandro | por ejemplo un grafico en tu programa de transparences, muestra lo que has cargado en calc - que requiere enlazado lento y para cada vez que pases una transparencia |
@alejandro | asi que rendimiento 2: comienzo frio - la diferencia entre frio y caliente es solo la E/S de disco |
@alejandro | E/S de disco en Linux no es tan inteligente y predictivo como en Win32 - podria ser mas lento un arranque frio en Linux |
@alejandro | en un portatil: 12 segundos de enlace frio mientras 5 en caliente |
@alejandro | claramente reducir la cantidad de memoria requerida y el numero de ficheros ayuda y el trabajo esta yendo en esa direccion - con algunas caracteristicas en 2.0.1/2.0.2 |
@alejandro | y por tercera parte la carga de documento - segun mejoras algoritmicas aqui ahora mismo esta lo necesario |
@alejandro | y ayudar con el profiling y solucion de fallos se aprecia |
@alejandro | asi que haciendo un repaso rapido: |
@alejandro | hay algunas caracteristicas que estan siendo desarrolladas ahora y que compartiria contigo: |
@alejandro | VBA/Calc, integracion mono & cairo |
@alejandro | soporte de Macros VBA en Calc ha sido el foco durante algun tiempo |
@alejandro | comprueba el wiki http://wiki.services.openoffice.org/wiki/VBA para mas detalles |
@alejandro | Esto aunque era una dificil tarea - es posible hacer una solucion a largo plazo completa y que de buenos resultados - con muchas macros convertiendose usables sin una solucion perfecta |
@alejandro | la mayoria de las macros parecen ser cortar/pegar del grabador de macros |
@alejandro | otra cosa - integracion con Mono |